用于获取 URL 子域的 PHP 函数
PHP中是否有函数来获取子域的名称?
在下面的示例中,我想获取URL的“en”部分:
en.example.com
PHP中是否有函数来获取子域的名称?
在下面的示例中,我想获取URL的“en”部分:
en.example.com
这是一个单行解决方案:
array_shift((explode('.', $_SERVER['HTTP_HOST'])));
或者使用您的示例:
array_shift((explode('.', 'en.example.com')));
编辑:通过添加双括号修复了“只有变量应该通过引用传递”的问题。
编辑2:从PHP 5.4开始,您可以简单地执行以下操作:
explode('.', 'en.example.com')[0];
使用parse_url函数。
$url = 'http://en.example.com';
$parsedUrl = parse_url($url);
$host = explode('.', $parsedUrl['host']);
$subdomain = $host[0];
echo $subdomain;
对于多个子域
$url = 'http://usa.en.example.com';
$parsedUrl = parse_url($url);
$host = explode('.', $parsedUrl['host']);
$subdomains = array_slice($host, 0, count($host) - 2 );
print_r($subdomains);