/**
  * Returns the URL registerd as $name prepended to $suffix.
  *
  * Example:
  * <code>
  * ezcUrlCreator::registerUrl( 'map', '/images/geo?xsize=450&ysize=450&zoom=4' );
  * echo ezcUrlCreator::prependUrl( 'map', 'map_sweden.gif' );
  * </code>
  * will output:
  * /images/geo/map_sweden.gif?xsize=450&ysize=450&zoom=4
  *
  * @throws ezcUrlNotRegisteredException
  *         if $name is not registered
  * @param string $name The name associated with the URL that will be appended with $suffix
  * @param string $suffix The string which will be appended to the URL
  * @return string
  */
 public static function prependUrl($name, $suffix)
 {
     if (!isset(self::$urls[$name])) {
         throw new ezcUrlNotRegisteredException($name);
     }
     $url = new ezcUrl(self::$urls[$name]);
     $url->path = array_merge($url->path, explode('/', $suffix));
     return $url->buildUrl();
 }
Exemple #2
0
<?php

require_once 'tutorial_autoload.php';
// create a new Url object from a string url
$url = new ezcUrl('http://www.example.com/mydir/index.php/content/view/article/42/mode/print?user[name]=Bob+Smith&user[age]=47&user[sex]=M');
// create an array which will be used to set the query part
$query = array('user' => array('name' => 'Bob Smith', 'age' => '47', 'sex' => 'M', 'dob' => '5/12/1956'));
// set the query part of the Url object
$url->setQuery($query);
var_dump(rawurldecode($url));
// add a query parameter to the query part
$url->setQuery(array_merge($url->getQuery(), array('sort' => 'desc')));
var_dump(rawurldecode($url));
// remove a query parameter from the query part
$url->setQuery(array_diff_key($url->getQuery(), array('sort' => null)));
var_dump(rawurldecode($url));
Exemple #3
0
<?php

require_once 'tutorial_autoload.php';
// create a new Url object from a string url
$url = new ezcUrl('http://www.example.com/mydir/index.php/content/view/article/42/mode/print?user[name]=Bob+Smith&user[age]=47&user[sex]=M');
// get the query parts
var_dump($url->getQuery());
Exemple #4
0
 /**
  * Test for bug #12825 (URL parser doesn't like empty elements.)
  */
 public function testGetUnorderedParameterMissing()
 {
     $urlCfg = new ezcUrlConfiguration();
     $urlCfg->basedir = 'mydir/';
     $urlCfg->script = 'index.php';
     $urlCfg->addUnorderedParameter('language');
     // should have been http://www.example.com/mydir/index.php/(language)/en
     $url = new ezcUrl('http://www.example.com/mydir/index.php//en', $urlCfg);
     $this->assertEquals(null, $url->getParam('language'));
 }
<?php

require_once 'tutorial_autoload.php';
// create an ezcUrlConfiguration object
$urlCfg = new ezcUrlConfiguration();
$urlCfg->basedir = '/mydir/shop';
$urlCfg->script = 'index.php';
$urlCfg->addOrderedParameter('module');
$url = new ezcUrl('http://www.example.com/mydir/shop/index.php/order/Software/PHP/Version/5.2/Extension/XDebug/Extension/openssl', $urlCfg);
// get the unordered parameters as a flat array
var_dump($url->getParams());
// will output array( 'Software', 'PHP', 'Version', '5.2', 'Extension', 'XDebug', 'Extension', 'openssl' )
Exemple #6
0
 /**
  * parseUrl sets up the parameters list by breaking up the URL and providing some 
  * default variables.
  */
 private function parseUrl(&$parameters)
 {
     $urlConfigRoot = new ezcUrlConfiguration();
     $urlConfigRoot->script = 'index.php';
     $urlConfigRoot->addOrderedParameter('module');
     $url = new ezcUrl($_SERVER['REQUEST_URI'], $urlConfigRoot);
     $moduleIdentifier = $url->getParam('module');
     $urlConfig = $this->urlConfigs[$moduleIdentifier];
     if (!$urlConfig) {
         $urlConfig = $this->urlConfigs['notfound'];
         $url = new ezcURL('/notfound/notfound/notfound', $urlConfigRoot);
     }
     $url->applyConfiguration($urlConfig);
     // var_dump($url->params);
     $parameters = array_merge($url->getQuery(), $_POST);
     $parameters['url'] = $url;
     $parameters['method'] = strtolower($_SERVER['REQUEST_METHOD']);
     $parameters['client_ip'] = $_SERVER['REMOTE_ADDR'];
     $parameters['client_port'] = $_SERVER['REMOTE_PORT'];
     //            var_dump($url->path);
 }
Exemple #7
0
$urlCfgDefault = new ezcUrlConfiguration();
$urlCfgDefault->addOrderedParameter('section');
// create a configuration for artists
$urlCfgArtist = new ezcUrlConfiguration();
$urlCfgArtist->addOrderedParameter('section');
$urlCfgArtist->addOrderedParameter('artist_name');
// create a configuration for albums
$urlCfgAlbum = new ezcUrlConfiguration();
$urlCfgAlbum->addOrderedParameter('section');
$urlCfgAlbum->addOrderedParameter('artist_name');
$urlCfgAlbum->addOrderedParameter('album_name');
// create a configuration for music genres
$urlCfgGenre = new ezcUrlConfiguration();
$urlCfgGenre->addOrderedParameter('section');
$urlCfgGenre->addOrderedParameter('genre_name');
$url = new ezcUrl('http://mymusicsite.com/showartist/Beatles', $urlCfgDefault);
switch ($url->getParam('section')) {
    case 'showartist':
        $url->applyConfiguration($urlCfgArtist);
        $artist = $url->getParam('artist_name');
        // do stuff with $artist
        var_dump($artist);
        break;
    case 'showalbum':
        $url->applyConfiguration($urlCfgAlbum);
        $artist = $url->getParam('artist_name');
        $album = $url->getParam('album_name');
        // do stuff with $artist and $album
        var_dump($artist);
        var_dump($album);
        break;
Exemple #8
0
<?php

require_once 'tutorial_autoload.php';
// create an ezcUrlConfiguration object
$urlCfg = new ezcUrlConfiguration();
// set the basedir and script values
$urlCfg->basedir = 'mydir';
$urlCfg->script = 'index.php';
// define delimiters for unordered parameter names
$urlCfg->unorderedDelimiters = array('(', ')');
// define ordered parameters
$urlCfg->addOrderedParameter('section');
$urlCfg->addOrderedParameter('group');
$urlCfg->addOrderedParameter('category');
$urlCfg->addOrderedParameter('subcategory');
// define unordered parameters
$urlCfg->addUnorderedParameter('game', ezcUrlConfiguration::MULTIPLE_ARGUMENTS);
// create a new ezcUrl object from a string url and use the above $urlCfg
$url = new ezcUrl('http://www.example.com/mydir/index.php/groups/Games/Adventure/Adult/(game)/Larry/7', $urlCfg);
// get the parameter values from the url
var_dump($url->getParam('section'));
var_dump($url->getParam('group'));
var_dump($url->getParam('category'));
var_dump($url->getParam('subcategory'));
var_dump($url->getParam('game'));
// output the url (index.php will not be there)
var_dump($url->buildUrl());
// output the url (with index.php included)
var_dump($url->buildUrl(true));
Exemple #9
0
 public function __construct($urlString, $urlCfgDefault)
 {
     parent::__construct($urlString, $urlCfgDefault);
 }
<?php

require_once 'tutorial_autoload.php';
// create an ezcUrlConfiguration object
$urlCfg = new ezcUrlConfiguration();
// single parameter value
$urlCfg->addUnorderedParameter('param1');
$url = new ezcUrl('http://www.example.com/(param1)/x/(param1)/y/z', $urlCfg);
var_dump($url->getParam('param1'));
// will output "y"
// multiple parameter values
$urlCfg->addUnorderedParameter('param1', ezcUrlConfiguration::MULTIPLE_ARGUMENTS);
$url = new ezcUrl('http://www.example.com/(param1)/x/(param1)/y/z', $urlCfg);
var_dump($url->getParam('param1'));
// will output array( "y", "z" )
// multiple parameter values with aggregation
$urlCfg->addUnorderedParameter('param1', ezcUrlConfiguration::AGGREGATE_ARGUMENTS);
$url = new ezcUrl('http://www.example.com/(param1)/x/(param1)/y/z', $urlCfg);
var_dump($url->getParam('param1'));
// will output array( array( "x" ), array( "y", "z" ) )
// output the url (it will be similar to the input url)
var_dump($url->buildUrl());
Exemple #11
0
<?php

require_once 'tutorial_autoload.php';
// create an ezcUrlConfiguration object
$urlCfg = new ezcUrlConfiguration();
// set the basedir and script values
$urlCfg->basedir = 'mydir';
$urlCfg->script = 'index.php';
// define delimiters for unordered parameter names
$urlCfg->unorderedDelimiters = array('(', ')');
// define ordered parameters
$urlCfg->addOrderedParameter('section');
$urlCfg->addOrderedParameter('group');
$urlCfg->addOrderedParameter('category');
$urlCfg->addOrderedParameter('subcategory');
// define unordered parameters
$urlCfg->addUnorderedParameter('game', ezcUrlConfiguration::MULTIPLE_ARGUMENTS);
$urlCfg->addUnorderedParameter('patches', ezcUrlConfiguration::AGGREGATE_ARGUMENTS);
// create a new ezcUrl object from a string url and use the above $urlCfg
$url = new ezcUrl('http://www.example.com/mydir/index.php/groups/Games/Adventure/Adult/(game)/Larry/7', $urlCfg);
var_dump($url->buildUrl());
// set the parameter values in the url
$url->setParam('subcategory', 'Kids');
$url->setParam('game', array('Monkey_Island', '3'));
var_dump($url->buildUrl());
$url->setParam('patches', array(array('beta1'), array('rc1', 'rc2')));
var_dump($url->buildUrl());
Exemple #12
0
    /**
     * Set up the process
     *
     * @param chkStructUriOptions $uriOptions
     * @see iBenchmarkable::setUp()
     */
    public function setUp( $uriOptions = null )
    {
        $urlBuilder = new ezcUrl();
        if( isset( $uriOptions ) ) $this->uriOptions = $uriOptions;
        //mandatory:
        if( isset( $uriOptions ) )
        {
            if( isset( $uriOptions->host ) ) $urlBuilder->host = $uriOptions->host;
            if( isset( $uriOptions->path ) ) $urlBuilder->path = $uriOptions->path;
        }
        $urlBuilder->scheme = 'http';

        //optionnals:
        if( isset( $uriOptions->scheme ) )
        {
            $urlBuilder->scheme = $uriOptions->scheme;
        }
        if( isset( $uriOptions->basedir ) )
        {
            $urlBuilder->basedir = $uriOptions->basedir;
        }
        if( isset( $uriOptions->query ) )
        {
            $urlBuilder->query = $uriOptions->query;
        }
        $this->url = $urlBuilder->buildUrl( false );

    }