/** * 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(); }
<?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));
<?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());
/** * 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' )
/** * 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); }
$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;
<?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));
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());
<?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());
/** * 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 ); }