我有一个变量,例如:
$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);
有什么建议吗?
答案 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');