purl
v1.0.0
Purl es una biblioteca simple de manipulación de URL orientada a objetos para PHP 7.2+
El método de instalación sugerido es a través de Composer:
composer require jwage/purl
Crear instancias de URL es fácil. Puede especificar la URL que desee o simplemente utilizar la URL actual:
use Purl Url ;
$ url = new Url ( ' http://jwage.com ' );
$ currentUrl = Url:: fromCurrent ();
Puede encadenar métodos después de crear la Url
de esta manera:
$ url = ( new Url ( ' http://jwage.com ' ))
-> set ( ' scheme ' , ' https ' )
-> set ( ' port ' , ' 443 ' )
-> set ( ' user ' , ' jwage ' )
-> set ( ' pass ' , ' password ' )
-> set ( ' path ' , ' about/me ' )
-> set ( ' query ' , ' param1=value1¶m2=value2 ' )
-> set ( ' fragment ' , ' about/me?param1=value1¶m2=value2 ' );
echo $ url -> getUrl (); // https://jwage:[email protected]:443/about/me?param1=value1¶m2=value2#about/me?param1=value1¶m2=value2
// $url->path becomes instanceof PurlPath
// $url->query becomes instanceof PurlQuery
// $url->fragment becomes instanceof PurlFragment
$ url = new Url ( ' http://jwage.com ' );
// add path segments one at a time
$ url -> path -> add ( ' about ' )-> add ( ' me ' );
// set the path data from a string
$ url -> path = ' about/me/another_segment ' ; // $url->path becomes instanceof PurlPath
// get the path segments
print_r ( $ url -> path -> getData ()); // array('about', 'me', 'another_segment')
$ url = new Url ( ' http://jwage.com ' );
$ url -> query -> set ( ' param1 ' , ' value1 ' );
$ url -> query -> set ( ' param2 ' , ' value2 ' );
echo $ url -> query ; // param1=value1¶m2=value2
echo $ url ; // http://jwage.com?param1=value1¶m2=value2
// set the query data from an array
$ url -> query -> setData ([
' param1 ' => ' value1 ' ,
' param2 ' => ' value2 '
]);
// set the query data from a string
$ url -> query = ' param1=value1¶m2=value2 ' ; // $url->query becomes instanceof PurlQuery
print_r ( $ url -> query -> getData ()); //array('param1' => 'value1', 'param2' => 'value2')
$ url = new Url ( ' http://jwage.com ' );
$ url -> fragment = ' about/me?param1=value1¶m2=value2 ' ; // $url->fragment becomes instanceof PurlFragment
Un Fragmento está formado por una ruta y una consulta y viene después del hashmark (#).
echo $ url -> fragment -> path ; // about/me
echo $ url -> fragment -> query ; // param1=value1¶m2=value2
echo $ url ; // http://jwage.com#about/me?param1=value1¶m2=value2
Puede extraer fácilmente URL de una cadena de texto utilizando el método extract
:
$ string = ' some text http://google.com http://jwage.com ' ;
$ urls = Url:: extract ( $ string );
echo $ urls [ 0 ]; // http://google.com/
echo $ urls [ 1 ]; // http://jwage.com/
Puedes unir fácilmente dos URL usando Purl:
$ url = new Url ( ' http://jwage.com/about?param=value#fragment ' );
$ url -> join ( ' http://about.me/jwage ' );
echo $ url ; // http://about.me/jwage?param=value#fragment
O si ya tienes otro objeto Url
:
$ url1 = new Url ( ' http://jwage.com/about?param=value#fragment ' );
$ url2 = new Url ( ' http://about.me/jwage ' );
$ url1 -> join ( $ url2 );
echo $ url1 ; // http://about.me/jwage?param=value#fragment