我知道有parse_url,然后得到['host'],但是它会返回完整的www.example.com。我想是这样的:如何从PHP中的URL解析网站的名称?
https://stackoverflow.com/questions/ask变成计算器
https://console.aws.amazon.com/s3/home?region=us-west-2变成亚马逊
有关如何做到这一点的任何建议?
我知道有parse_url,然后得到['host'],但是它会返回完整的www.example.com。我想是这样的:如何从PHP中的URL解析网站的名称?
https://stackoverflow.com/questions/ask变成计算器
https://console.aws.amazon.com/s3/home?region=us-west-2变成亚马逊
有关如何做到这一点的任何建议?
还在用parse_url(),但在此之后,使用爆炸(),并获得第二到的最后一个索引
// Explode by .
$arr_host = explode('.', $host);
// Count how many in array
$count = count($arr_host);
// Get second to the last index
$domain = $arr_host[$count-2];
echo $domain;
'http:// www.samsung.co.kr/main.do'变成...? –
$ parse = parse_url($ url); $ host = isset($ parse ['host'])? $ parse ['host']:''; –
尝试
$pieces = parse_url($url);
$domain = isset($pieces['host']) ? $pieces['host'] : '';
if (preg_match('/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $regs)) {
echo strstr($regs['domain'], '.', true);
}
我想不出任何会*可靠*做到这一点。如果你获得主机名,你可以检索你提到的例子,用'.'分解它,然后得到最后一个元素。 – Jorg
@Jorg,这不适用于国家域名:www.google.co.uk。倒数第二个就是'.co' – Andy
@Andy这就是Jorg说的,它不能可靠地工作。 –