PHP从String中删除域名扩展名

时间:2011-01-21 19:42:12

标签: php string function dns

我想知道使用PHP从域中删除某些东西的最佳方法。

例如:

http://mydomain.com/ ”进入“ mydomain

http://mydomain.co.uk/ ”进入“ mydomain

我正在寻找一个快速的功能,可以让我删除以下内容:

“http://”,“www。”,“。com”,“。co.uk”,“。net”,“。org”,“/”等

提前致谢:)

4 个答案:

答案 0 :(得分:6)

要获取网址的主机部分,请使用parse_url

$host = parse_url($url, PHP_URL_HOST);

其余的请参阅my answer to Remove domain extension

答案 1 :(得分:1)

你能使用字符串替换吗?

str_replace('http://', '');

这会从字符串中删除'http://'。您首先需要做的就是获取页面的当前URL并将其传递给您想要的任何字符串替换..

答案 2 :(得分:1)

我会str_replace'http://'然后爆炸完整域名中的句点。

答案 3 :(得分:0)

您可以组合使用parse_url()和str_ *函数,但如果您需要从结果中剪切域区域(.com,.net等),那么您将永远不会得到正确的结果。

例如:

parse_url('http://mydomain.co.uk/', PHP_URL_HOST); // will return 'mydomain.co.uk'

您需要使用使用Public Suffix List的库来处理此类情况。我推荐TLDExtract

以下是示例代码:

$extract = new LayerShifter\TLDExtract\Extract();

$result = $extract->parse('mydomain.co.uk');
$result->getHostname(); // will return 'mydomain'
$result->getSuffix(); // will return 'co.uk'
$result->getFullHost(); // will return 'mydomain.co.uk'
$result->getRegistrableDomain(); // will return 'mydomain.co.uk'