PHPでドメイン名とサブドメインを分離する
経緯
- AccessLog内のあくせすさきURLから、ドメイン名だけ抜き出したかった
- 正規表現で ドメイン名とサブドメインを分離できるだろうと思ったけど、よくよく考えたら無理だった
- サードレベルまで考えるか、セカンドレベルまででいいかとか
- 最近大量に使用できるドメイン名が増えてきた
- など
解決策
- Domain parser を使う (php-domain-parser)
- Sourceはこんな感じで書く
$pslManager = new Pdp\PublicSuffixListManager();
$parser = new Pdp\Parser($pslManager->getList());
$url = 'www.domainname.net';
$subdomain = $parser->getSubdomain($url);
$domainName = $parser->getRegisterableDomain($url);
/** $subdomain = 'www' */
/** $domainName = 'domainname.net' */
以上です