Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork5
PHP library to access URL information
License
josantonius/php-url
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Translations:Español
PHP library to access URL information.
Provides an improved replacement for the access to the components of a URL offered by PHP'sparse_url andpathinfo functions.
This library does not format the provided URL, it only makes it easier to access the components.For something more advanced you can use something likeleague/uri-components.
Operating System: Linux | Windows.
PHP versions: 8.1 | 8.2.
The preferred way to install this extension is throughComposer.
To installPHP URL library, simply:
composer require josantonius/urlThe previous command will only install the necessary files,if you prefer todownload the entire source code you can use:
composer require josantonius/url --prefer-sourceYou can alsoclone the complete repository with Git:
git clone https://github.com/josantonius/php-url.gitJosantonius\Url\Url
Create a new instance:
/** * If no URL is provided, the URL of the current page will be generated. * * The generated URL will exclude ports 80 and 443 and include the rest. */publicfunction __construct(null|string$url =null);
Gets authority:
/** * The authority, in "[user-info@][host][:port]" format. * * @var string URL authority or empty string. */publicreadonly string$authority;
Gets the base URL:
/** * The base URL, in "[scheme:][//domain][:port]" format. * * @var string Base URL or empty string. */publicreadonly string$base;
Gets the path basename:
/** * The path basename, in "[filename][.extension]" format. * * @var string URL path basename or empty string. */publicreadonly string$basename;
Gets the path dirname:
/** * The path dirname, in "[dirname]" format. * * @var string URL path dirname or empty string. */publicreadonly string$dirname;
Gets the path basename extension:
/** * The path basename extension, in "[extension]" format. * * @var string URL path basename extension or empty string. */publicreadonly string$extension;
Gets the path filename:
/** * The path filename, in "[filename]" format. * * @var string URL path filename or empty string. */publicreadonly string$filename;
Gets fragment:
/** * URL fragment in "[fragment]" format. * * @var string URL fragment or empty string. */publicreadonly string$fragment;
Gets the full URL:
publicreadonly string$full;
Gets hashed fragment:
/** * URL hashed fragment in "[#fragment]" format. * * @var string URL hashed fragment or empty string. */publicreadonly string$hash;
Gets host:
/** * URL host in "[subdomain.][domain][.tld]" format. * * @var string URL host or empty string. */publicreadonly string$host;
Gets path:
/** * URL path in "[path]" format. * * @var string URL path or empty string. */publicreadonly string$path;
Gets the query parameters:
/** * URL query parameters in array format. * * @var array<string, mixed> URL query parameters or empty string. */publicreadonly array$parameters;
Gets password:
/** * URL password in "[password]" format. * * @var string URL password or empty string. */publicreadonly string$password;
Gets port:
/** * URL port in "[port]" format. * * @var string URL port or empty string. */publicreadonly int|string$port;
Gets scheme:
/** * URL scheme in "[scheme]" format. * * @var string URL scheme or empty string. */publicreadonly string$scheme;
Gets path segments:
/** * URL path segments in array format. * * @var string[] URL path segments or empty string. */publicreadonly array$segments;
Gets query:
/** * URL query in "[query]" format. * * @var string URL query or empty string. */publicreadonly string$query;
Gets username:
/** * URL username in "[username]" format. * * @var string URL username or empty string. */publicreadonly string$username;
Example of use for this library:
useJosantonius\Url\Url;$url =newUrl();
useJosantonius\Url\Url;$url =newUrl('https://domain.com');
useJosantonius\Url\Url;$url =newUrl();// https://domain.com$url->authority;// "domain.com"$url =newUrl('https://user:pass@sub.domain.com:90/en/');$url->authority;// "user:pass@sub.domain.com:90"$url =newUrl('https://user:pass@sub.domain.com/en/');$url->authority;// "user:pass@sub.domain.com"$url =newUrl('https://sub.domain.com/en/');$url->authority;// "sub.domain.com"
useJosantonius\Url\Url;$url =newUrl();// https://user:pass@domain.com:80/en/$url->base;// "https://domain.com"$url =newUrl('https://domain.com:80/?tag=bug');$url->base;// "https://domain.com:80"$url =newUrl('https://domain.com/en/');$url->base;// "https://domain.com"
useJosantonius\Url\Url;$url =newUrl();// https://domain.com/search.php$url->basename;// "search.php"$url =newUrl('https://domain.com/en/web/docs/search.php?tag=bug');$url->basename;// "search.php"$url =newUrl('https://domain.com/en/web/docs?tag=bug');$url->basename;// "docs"
useJosantonius\Url\Url;$url =newUrl();// https://domain.com/search.php$url->dirname;// "/"$url =newUrl('https://domain.com/en/web/docs/search.php?tag=bug');$url->dirname;// "/en/web/docs"$url =newUrl('https://domain.com/en/web/docs?tag=bug');$url->dirname;// "/en/web"
useJosantonius\Url\Url;$url =newUrl();// https://domain.com/search.php$url->extension;// "php"$url =newUrl('https://domain.com/en/web/docs/search.php?tag=bug');$url->extension;// "php"$url =newUrl('https://domain.com/en/web/docs?tag=bug');$url->extension;// ""
useJosantonius\Url\Url;$url =newUrl();// https://domain.com/search.php$url->filename;// "search"$url =newUrl('https://domain.com/en/web/docs/search.php?tag=bug');$url->filename;// "search"$url =newUrl('https://domain.com/docs?tag=bug');$url->filename;// "docs"
useJosantonius\Url\Url;$url =newUrl();// https://domain.com#top$url->fragment;// "top"$url =newUrl('https://domain.com/en/web/docs#top');$url->fragment;// "top"$url =newUrl('https://domain.com');$url->fragment;// ""
useJosantonius\Url\Url;$url =newUrl();// https://domain.com:80$url->full;// "https://domain.com"$url =newUrl('https://user:pass@sub.domain.com:90/en/');$url->full;// "https://user:pass@sub.domain.com:90/en/"
useJosantonius\Url\Url;$url =newUrl();// https://domain.com#top$url->hash;// "#top"$url =newUrl('https://domain.com/en/web/docs#top');$url->hash;// "#top"$url =newUrl('https://domain.com');$url->hash;// ""
useJosantonius\Url\Url;$url =newUrl();// https://sub.domain.com$url->host;// "sub.domain.com"$url =newUrl('https://sub.domain.com/en/web/docs#top');$url->host;// "sub.domain.com"$url =newUrl('https://domain.com');$url->host;// "domain.com"$url =newUrl('https://localhost');$url->host;// "localhost"
useJosantonius\Url\Url;$url =newUrl();// https://domain.com/en$url->path;// "/en/web/docs/search.php"$url =newUrl('https://domain.com/en/web/docs/search.php');$url->path;// "/en/web/docs/search.php"$url =newUrl('https://domain.com/en/web/docs/');$url->path;// "/en/web/docs/"$url =newUrl('https://domain.com/en?tag=bug');$url->path;// "/en"$url =newUrl('https://domain.com?tag=bug');$url->path;// ""
useJosantonius\Url\Url;$url =newUrl();// https://domain.com/en?tag=bug&order=asc#top$url->parameters;// ["tag" => "bug", "order" => "asc"]$url =newUrl('https://domain.com/en/web/docs/search.php');$url->parameters;// ""
useJosantonius\Url\Url;$url =newUrl();// https://:pass@domain.com$url->password;// "pass"$url =newUrl('https://user:pass@domain.com');$url->password;// "pass"$url =newUrl('https://user@domain.com');$url->password;// ""
useJosantonius\Url\Url;$url =newUrl();// https://domain.com:90$url->port;// 90$url =newUrl();// https://domain.com:80$url->port;// ""$url =newUrl();// https://domain.com:443$url->port;// ""$url =newUrl('https://domain.com:80/en/');$url->port;// 80$url =newUrl('https://domain.com:443/en/');$url->port;// 443$url =newUrl('https://domain.com/en/');$url->port;// ""
useJosantonius\Url\Url;$url =newUrl();// http://domain.com$url->scheme;// "http"$url =newUrl('https://domain.com');$url->scheme;// "https"
useJosantonius\Url\Url;$url =newUrl();// https://domain.com?tag=bug$url->segments;// []$url =newUrl('https://domain.com/en/web/docs/search.php');$url->segments;// ['en', 'web', 'docs', 'search.php']
useJosantonius\Url\Url;$url =newUrl();// https://domain.com?tag=bug$url->query;// "tag=bug"$url =newUrl('https://domain.com?tag=bug&order=asc#top');$url->query;// "tag=bug&order=asc"$url =newUrl('https://domain.com');$url->query;// ""
useJosantonius\Url\Url;$url =newUrl();// https://user@domain.com$url->username;// "user"$url =newUrl('https://:pass@domain.com');$url->username;// ""$url =newUrl('https://user:pass@domain.com');$url->username;// "user"$url =newUrl('https://domain.com');$url->username;// ""
To runtests you just needcomposerand to execute the following:
git clone https://github.com/josantonius/php-url.gitcd php-urlcomposer installRun unit tests withPHPUnit:
composer phpunitRun code standard tests withPHPCS:
composer phpcsRunPHP Mess Detector tests to detect inconsistencies in code style:
composer phpmdRun all previous tests:
composer tests- Add new feature
- Improve tests
- Improve documentation
- Improve English translation in the README file
- Refactor code for disabled code style rules (see phpmd.xml and phpcs.xml)
Detailed changes for each release are documented in therelease notes.
Please make sure to read theContributing Guide, before making a pullrequest, start a discussion or report a issue.
Thanks to allcontributors! ❤️
If this project helps you to reduce your development time,you can sponsor me to support my open source work 😊
This repository is licensed under theMIT License.
Copyright © 2017-present,Josantonius
About
PHP library to access URL information
Topics
Resources
License
Code of conduct
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors2
Uh oh!
There was an error while loading.Please reload this page.