Hi -- One of the first things I noticed when looking at the code is that you give a wrong example, or wrong terminology, in the PHPDocs.
If you have http://xyz.123.google.com
The Domain is: google.com
The Top Level Domain (TLD) is: com
You seem to be calling the domain the "TLD" throughout. That's not what TLD means. From your PHPDocs:
@example
* require 'utils.php';
* echo Tld::getTld('http://www.google.co.uk'); // good pattern, echoes 'google.co.uk'
* echo Tld::getTld('http://www.me.congresodelalengua3.ar'); // good pattern, echoes 'me.congresodelalengua3.ar'
* echo Tld::getTld('http://www.v2.google.co.uk'); // good pattern, echoes 'google.co.uk'
All three of those getTld() calls is returning the domain, not the TLD. Which is actually what I want; but either the function is poorly named or the example is wrong.
en.wikipedia.org/wiki/Top-level_dom
...
Otherwise the code is very interesting, and I hope I can use it! Thanks.