Please use https://github.com/jeremykendall/php-domain-parser.
Abstraction layer for Public Suffix List in PHP. Used by TLDExtract.
Main idea of library provide easy and fast access to actual database of Public Suffix List. Library always supplied with actual database.
This package is compliant with PSR-1, PSR-2, PSR-4. If you notice compliance oversights, please send a patch via pull request.
The following versions of PHP are supported:
- PHP 5.5
- PHP 5.6
- PHP 7.0
- PHP 7.1
- HHVM
First of all you need load Store class.
$store = new \LayerShifter\TLDDatabase\Store();
For check existence of entry in database you need use isExists
method:
$store->isExists(string $suffix) : bool;
$store->isExists('com'); // true
$store->isExists('comcom'); // false
Note: suffix must be without leading dot.
For get type of suffix you need use getType
method:
For check existence of entry in database you need use isExists
method:
$store->isExists(string $suffix): int;
$store->getType('com'); // \LayerShifter\TLDDatabase\Store::TYPE_ICANN = 1
$store->getType('s3.amazonaws.com'); // \LayerShifter\TLDDatabase\Store::TYPE_PRIVATE = 2
If entry doesn't exists method will throw exception, else it will return one of integer constants:
\LayerShifter\TLDDatabase\Store::TYPE_ICANN
;\LayerShifter\TLDDatabase\Store::TYPE_PRIVATE
;
For direct check of type you can use isICANN
or isPrivate
method.
$store->isICANN(string $suffix) : bool;
$store->isICANN'com'); // true
$store->isICANN('s3.amazonaws.com'); // false
$store->isPrivate(string $suffix) : bool;
$store->isPrivate('com'); // false
$store->isPrivate('s3.amazonaws.com'); // true
There are some cool features for developers.
If you need operate with custom (non-packaged) database you simply need to add argument to Store
constructor.
$store = new \LayerShifter\TLDDatabase\Store(string $filename);
$store = new \LayerShifter\TLDDatabase\Store(__DIR__ . '/cache/datatabase.php');
If you use custom database you need update it 😉 So, you can use Update
class.
$update = new \LayerShifter\TLDDatabase\Update(string $filename);
$update = new \LayerShifter\TLDDatabase\Update(__DIR__ . '/cache/datatabase.php');
$update->run();
Basically library uses cURL adapter for updates, but you can use custom adapter.
class customHttp implements \LayerShifter\TLDDatabase\Http\AdapterInterface {
public function get() {}
}
$update = new \LayerShifter\TLDDatabase\Update(__DIR__ . '/cache/datatabase.php', 'customHttp');
$update->run();
Via Composer
$ composer require layershifter/tld-database
$ composer test
Library uses SemVer versioning. Where:
- major makes incompatible API changes;
- minor adds functionality, fully backwards-compatible;
- patch is update of database from Public Suffix List.
Database has every week update cycle.
Please see CONTRIBUTING and CONDUCT for details.
This library is released under the Apache 2.0 license. Please see License File for more information.