正则表达式和PHP

时间:2009-11-18 19:36:57

标签: php string

我有一个用户输入网址的表单。我需要一个正则表达式来跳过“http://”部分(如果存在)。例如,如果用户插入表单:http://youtube.com我只需要保存youtube.com。  我不知道正则表达式。你可以帮帮我吗?谢谢!

6 个答案:

答案 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];