从变量中删除http

时间:2011-09-03 14:44:41

标签: php

我有一个变量,例如:

$domain = "http://test.com"

我需要使用preg_replace或str_place来获取这样的变量:

$domain = "test.com"

我尝试使用以下内容,但它们不起作用。

1) $domain = preg_replace('; ((ftp|https?)://|www3?\.).+? ;', ' ', $domain);
2) $domain = preg_replace(';\b((ftp|https?)://|www3?\.).+?\b;', ' ', $domain);

有什么建议吗?

6 个答案:

答案 0 :(得分:8)

或者您可以使用parse_url

parse_url($domain, PHP_URL_HOST);

答案 1 :(得分:3)

$domain = ltrim($domain, "http://");

答案 2 :(得分:0)

您是否尝试过str_replace?

$domain = "http://test.com"
$domain = str_replace('http://','',$domain);

正则表达式可能找不到匹配的模式。

答案 3 :(得分:0)

preg_replace('~(https://|http://|ftp://)~',, '', $domain);

答案 4 :(得分:0)

preg_match('/^[a-z]+:[/][/](.+)$/', $domain, $matches);
echo($matches[1]);

应该是你想要的,应该在协议后给你一切...... http://domain.com/test变成“domain.com/test”。但是,它并不关心协议,如果您只想支持HTTP和FTP等特定协议,那么请使用它:

preg_match('/^(http|ftp):[/][/](.+)$/', $domain, $matches);

如果您只想要域或URI的类似部分,我建议使用PHP的parse_url()。它为您完成所有艰苦的工作并以正确的方式完成。根据您的需要,我可能会建议您使用它,而不是将它们全部重新组合在一起。

答案 5 :(得分:0)

简单的正则表达式:

preg_replace('~^(?:f|ht)tps?://~i','', 'https://www.site.com.br');