我有一个用户输入网址的表单。我需要一个正则表达式来跳过“http://”部分(如果存在)。例如,如果用户插入表单:http://youtube.com我只需要保存youtube.com。 我不知道正则表达式。你可以帮帮我吗?谢谢!
答案 0 :(得分:4)
我想也许正则表达式在这里会有点过分。怎么样?
$str = str_replace(array('http://', 'https://'),'',$str);
答案 1 :(得分:1)
请注意,字符串http://
可能会在网址中出现两次或更多次!
$parts = parse_url('http://youtube.com');
$url = $parts['host'].$parts['path']; //.'?'.$parts['query'].'#'.$parts['fragment']
请参阅parse_url()
答案 2 :(得分:0)
你真的不需要正则表达式。这就够了:
if (substr($str, 0, 7) == 'http://')
$str = substr($str, 7);
else if (substr($str, 0, 8) == 'https://')
$str = substr($str, 8);
编辑:添加了else if
部分。
答案 3 :(得分:0)
您可以使用substr来检查字符串是否以'http://'开头并删除该部分;没有正则表达式。
答案 4 :(得分:0)
你可以在没有正则表达式的情况下完成它,因为你不知道正则表达式,只检查第一个找到的“http://”字符串的索引(不区分大小写)是否位于0位置,如果它是删除的话它
答案 5 :(得分:0)
不需要。但是,如果你想要正则表达式:
// get host name from URL
preg_match('@^(?:http://)?([^/]+)@i', $the_url, $matches);
$host = $matches[1];