使用php从完整的url字符串获取http://之后的url

时间:2012-06-18 09:21:21

标签: php string

我在这样的数据库中存储url字符串,

'http://www.domain.com'

如何显示上面的字符串

'www.domain.com'

我需要第一手正常表达

5 个答案:

答案 0 :(得分:4)

使用parse_url(),您可以将网址拆分为其中的部分并获取您想要的网址。在你的情况下(寻找host),它将是:

$url = 'http://www.domain.com';
$parts = parse_url($url);
$result = $parts['host'];

这比其他已发布的解决方案有一个很大的优势:它可以使用https-urls,带有get-parameters和/或url的url,包括htaccess-authentication paramneters,而无需更改代码。

答案 1 :(得分:1)

您可以使用以下内容:

<?php
str_replace('http://', '', $url);

编辑:

由于你坚持使用正则表达式解决方案,这里有一个在一个

中处理http和https的方法
echo preg_replace( '/^(htt|ht|tt)p\:?\/\//i', '', $url);

答案 2 :(得分:1)

echo substr('http://www.domain.com',7);

if (substr('http://www.domain.com',7) == 'http://' or substr('https://www.domain.com',8) == 'https://')

答案 3 :(得分:1)

修改字符串而不解析URL的一般解决方案(即你应该学会自己做这样的事情):

if (stripos($url, 'http://', 0) == 0)
    $url = substr($url, 7);

您还可以轻松添加https://前缀或其他任何内容的其他检查:

if (stripos($url, 'https://', 0) == 0)
    $url = substr($url, 8);

使用正则表达式,尽管完全没必要,因为没有任何需要的表达式,你可以像这样:

$url = preg_replace('/^http:\\/\\//', '', $url);

或直接支持https:

$url = preg_replace('/^https?:\\/\\//', '', $url);

答案 4 :(得分:1)

只需你可以使用 $ url ='http://www.domain.com';

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

它将准确返回www.domain.com