从字符串中删除“http://”

时间:2013-12-31 22:31:51

标签: php

我有一个PHP脚本,可以从用户输入的url字符串中删除“http://”。

我的剧本:

$url= "http://techcrunch.com/startups/";
$url = str_replace('http://', '', $url);

结果:

$url= techcrunch.com/startups/

这很有效,除了有时网址有“https://”。有没有办法可以删除域名之前的所有内容,无论它是什么?

5 个答案:

答案 0 :(得分:1)

试试这个:

$url = 'http://techcrunch.com/startups/';
$url = str_replace(array('http://', 'https://'), '', $url);

修改

或者,总是删除协议的简单方法:

$url = 'https://www.google.com/';
$url = preg_replace('@^.+?\:\/\/@', '', $url);

答案 1 :(得分:0)

使用preg_replace中的后面的内容删除//之前的任何内容。

preg_replace('(^[a-z]+:\/\/)', '', $url);

只有在字符串的开头找到它才会替换,如果稍后找到则会忽略

答案 2 :(得分:0)

这样的事应该做​​:

$url = preg_replace("|^.+?://|", "", $url);

删除所有内容,包括://

答案 3 :(得分:0)

preg_replace('/^[^:\/?]+:\/\//','',$url);

一些结果:

input: http://php.net/preg_replace
output: php.net/preg_replace

input: https://www.php.net/preg_replace
output: www.php.net/preg_replace

input: ftp://www.php.net/preg_replace
output: www.php.net/preg_replace

input: https://php.net/preg_replace?url=http://whatever.com
output: php.net/preg_replace?url=http://whatever.com

input: php.net/preg_replace?url=http://whatever.com
output: php.net/preg_replace?url=http://whatever.com

input: php.net?site=http://whatever.com
output: php.net?site=http://whatever.com

答案 4 :(得分:-1)

$new_website = substr($str, ($pos = strrpos($str, '//')) !== false ? $pos + 2 : 0);

这将删除'//'。

之前的所有内容

修改

这个是经过测试的。改为使用strrpos()strpos()