1. Go to this page and download the library: Download jstewmc/url library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
jstewmc / url example snippets
// create a url
$url = new Url();
$url->setScheme('http');
$url->setHost('example.com');
$url->setPath('foo/bar');
$url->setQuery('baz=qux');
echo $url; // prints "http://example.com/foo/bar?baz=qux"
// parse a url
$url = new Url('http://example.com/foo/bar?baz=qux');
echo $url->getScheme(); // prints 'https'
echo $url->getHost(); // prints 'example.com'
echo $url->getPath(); // prints 'foo/bar'
echo $url->getPath()->getSegment(1); // prints 'bar'
echo $url->getQuery(); // prints 'baz=qux'
echo $Url->getQuery()->getParameter('baz'); // prints 'qux'
// manipulate a url
$url = new Url('http://example.com/foo/bar?baz=qux');
$url->getPath()->reverse()->prependSegment('qux')->insertSegment('quux', 2);
echo $url; // prints "http://example.com/qux/bar/quux/foo?baz=qux
$url->getQuery()->unsetParameter('baz')->setParameter('quux', 'corge');
echo $url; // prints "http://example.com/qux/bar/quux/foo?quux=corge
$url = new Url();
$url
->setScheme('http')
->setHost('example.com')
->setPort('1234')
->setPath('foo/bar/baz')
->setQuery('qux=quux')
->setFragment('corge');
echo $url; // prints "http://example.com:1234/foo/bar/baz?qux=quux#corge
echo $url->format('absolute'); // prints "http://example.com:1234/foo/bar/baz?qux=quux#corge
echo $url->format('relative'); // prints "/foo/bar/baz?qux=quux#corge"
// create a url
$url = new Url();
$url
->setScheme('http')
->setHost('example.com')
->setPort('1234')
->setFragment('foo');
echo $url; // prints "http://example.com:1234#foo"
// parse a url
$url = new Url('http://example.com:1234#foo');
echo $url->getScheme(); // prints 'http'
echo $url->getHost(); // prints 'example.com'
echo $url->getPort(); // prints '1234'
echo $url->getFragment(); // prints 'foo'
// set the path as a string
$url = new Url();
$url->setScheme('http')
->setHost('example.com')
->setPath('foo/bar');
echo $url; // prints "http://example.com/foo/bar"
// set the path as an array of segments
$url = new Url();
$url->setScheme('http')
->setHost('example.com')
->getPath()
->setSegments(['foo', 'bar']);
echo $url; // prints "http://example.com/foo/bar"
// set the path's segments one-by-one
$url = new Url();
$url->setScheme('http')
->setHost('example.com')
->getPath()
->appendSegment('foo')
->appendSegment('bar');
echo $url; // prints "http://example.com/foo/bar"
$url = new Url();
$url->setScheme('http')
->setHost('example')
->getPath()
->appendSegment('foo') // path is "foo"
->prependSegment('bar') // path is "bar/foo"
->insertSegment('baz', 1) // path is "bar/baz/foo"
->setSegment(-1, 'qux') // path is "bar/baz/qux"
->unsetSegment('last'); // path is "bar/baz"
$url = new Url("http://example.com/foo/bar/baz");
$path = $url->getPath();
echo $path; // prints "foo/bar/baz"
// get the index of the 'foo' segment
$path->getIndex('foo'); // returns 0
$path->getIndex('qux'); // returns false
// get the value of the 0-th (aka, 'first') segment
$path->getSegment(0); // returns 'foo'
$path->getSegment('first'); // returns 'foo'
// does the path have a segment at the 1-st index?
$path->hasIndex(1); // returns true
$path->hasIndex(10); // returns false
// does the path have the given segments at any index?
$path->hasSegment('bar'); // returns true
$path->hassegment('qux'); // returns false
// does the path have the given segments at the given indices?
$path->hasSegment('foo', 0); // returns true
$path->hasSegment('foo', 'first'); // returns true
$path->hasSegment('qux', 'last'); // returns false
$url = new Url("http://example.com/foo/bar/baz");
$path = $url->getPath();
echo $path; // prints "foo/bar/baz"
// get a slice (as a new Path) from the 1-st index to the end
$path->getSlice(1); // returns ['bar', 'baz']
// get a slice (as a new Path) from the 1-st index for one segment
$path->getSlice(1, 1); // returns ['bar']
// slice the path itself
$path->slice(1, 1);
echo $path; // prints "bar"
// get a new, reversed Path
$reverse = $path->getReverse();
echo $reverse; // prints "baz/bar/foo"
// reverse the path itself
$path->reverse();
echo $path; // prints "baz/bar/foo"
// set the query as a string
$url = new Url();
$url->setScheme('http')
->setHost('example.com')
->setQuery('foo=bar&baz=qux');
echo $url; // prints "http://example.com?foo=bar&baz=qux"
// set the query's parameters as an array
$url = new Url();
$url->setScheme('http')
->setHost('example.com')
->getQuery()
->setParameters(['foo' => 'bar', 'baz' => 'qux']);
echo $url; // prints "http://example.com?foo=bar&baz=qux"
// finally, you can set the query's parameters one-by-one
$url = new Url();
$url->setScheme('http')
->setHost('example.com')
->getQuery()
->setParameter('foo', 'bar')
->setParameter('baz', 'qux');
echo $url; // prints "http://example.com?foo=bar&baz=qux"
$url = new Url();
$url
->setScheme('http')
->setHost('example.com')
->getQuery()
->setParameter('foo', 'bar')
->setParameter('baz', 'qux');
echo $url; // prints "http://example.com?foo=bar&baz=qux"
$url->getQuery()->unsetParameter('foo');
echo $url; // prints "http://example.com?baz=qux"
$url = new Url('http://example.com?foo=bar&baz=qux');
$query = $url->getQuery();
// does the query have the given parameters?
$query->hasParameter('foo'); // returns true
$query->hasParameter('corge'); // returns false
// what is the value of the given parameters?
$query->getParameter('foo'); // returns 'foo'
$query->getParameter('baz'); // returns 'qux'
$query->getParameter('qux'); // throws OutOfBoundsException
$string = 'http://example.com|foo|bar|baz?foo=bar;baz=qux';
// notice the pipe character ("|") as the path separator (for some reason), and
// notice the semi-colon character (";") as the argument separator
//
$url = new Url($string); // this will not work!
// instead, set your separators and call the parse() method manually
$url = new Url();
$url->getPath()->setSeparator('|');
$url->getQuery()->setSeparator(';');
$url->parse($string);
class MyUrl extends Url
{
/* !Protected properties */
/**
* @var string my default host name
*/
protected $host = 'mydomain.com';
/**
* @var string my default scheme
*/
protected $scheme = 'https';
/**
* @var string my non-standard default https port
*/
protected $port = '12345';
}
$url = new MyUrl();
$url->setPath('foo/bar');
echo $url; // prints "https://mydomain.com:12345/foo/bar"
// print "http://example.com" in one line
echo (new Url())->setScheme('http')->setHost('example.com');
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.