Skip to content

bpolaszek/hostname-extractor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Latest Stable Version License Build Status Coverage Status Quality Score Total Downloads

Hostname Extractor

A simple library to manipulate domains.

Usage

require_once __DIR__ . '/vendor/autoload.php';

use BenTools\HostnameExtractor\HostnameExtractor;
use BenTools\HostnameExtractor\SuffixProvider\PublicSuffixProvider;

$extractor = new HostnameExtractor(new PublicSuffixProvider());
$hostname = $extractor->extract('my.preferred.domain.co.uk');
dump($hostname->getSubdomain()); // my.preferred
dump($hostname->getDomain()); // domain
dump($hostname->getSuffix()); // co.uk
dump($hostname->getTld()); // uk
dump($hostname->getSuffixedDomain()); // domain.co.uk
dump($hostname->isIp()); // false
dump($hostname->isIpv4()); // false
dump($hostname->isIpv6()); // false

As you can see, co.uk is considered as a suffix (otherwise, we would have considered that co is the domain and uk the suffix / tld).

The library parses the Public Suffix List, which stores thousands of existing suffixes.

To avoid network latency feel free to implement your own BenTools\HostnameExtractor\SuffixProvider\SuffixProviderInterface or to use your favorite PSR-16 library into a BenTools\HostnameExtractor\SuffixProvider\PSR16CacheSuffixProvider object.

Installation

PHP 7.1+ with mbstring extension is required.

composer require bentools/hostname-extractor ^1.0

Tests

./vendor/bin/phpunit

License

MIT.

See also

bentools/querystring - Easily manipulate your query strings.

bentools/uri-factory - PSR-7 UriInterface factory with multiple libaries support.

About

A standalone PHP library to parse hostnames.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages