strrpos PHP函数无法工作
我有这样的功能:strrpos PHP函数无法工作
function adjust_url_with_www_extract($host)
{
$pos =strrpos($host,"www.");
if( $pos === true )
{
$host= substr($host,5);
}
return $host;
}
我是从这个函数调用它:
private function _unitTest()
{
$url="www.php.net/manual/en/function.substr.php";
$result= $this->UnitTest->adjust_url_with_www_extract($url);
return $result;
}
但它绝不会取消了www ..澳洲英语就永远不会到达如果条件...为什么呢?
为什么不能简单地做:
function adjust_url_with_www_extract($host) {
return preg_replace('~^www\.~', '', $host);
}
'str_replace'将会是我的选择。据我所知,使用资源非常匮乏的'preg_ *'功能,当一个更简单的功能工作以及 – cypherabe 2012-04-23 12:21:45
@cypherabe我会同意你,虽然我可以想象你只想替换“www。“在一个URL的*开头*中,想象一下像www.yourwebsite.com/how-to-start-a-blogpost-on-the-www.html'这样的URL,str_replace会导致URL无效, preg_replace不会。此外,即使str_replace速度更快,preg_replace也不是*那*资源匮乏。 – 2012-04-23 12:28:46
希望这可以工作..... – 2012-04-23 12:35:30
strrpos()函数查找另一个字符串内最后一次出现字符串的位置。该函数返回成功的位置,否则返回FALSE。永远不会返回TRUE
所以
strrpos($主机, “WWW”)会给0您提供的网址,以便0意味着假 加1 strrpos($主机, “WWW”)+ 1这样的它会工作
其他明智strrpos> -1检查这样
大声笑...这是一个什么解决方案? – 2012-04-23 11:48:26
使用此条件strrpos($ host,“www。”)> -1 in if – 2012-04-23 11:54:35
它为什么有效? – 2012-04-23 11:56:21
让我们一行一行($主机, “WWW”): “www” 的
$pos =strrpos($host,"www.");
找到的位置(从相反的方向来说吧?)。
if( $pos === false )
,如果我们没有发现它(啊?),舍去前5(啊?)字符,返回休息:
$host= substr($host,5);
否则返回一大堆:
return $host;
那么你为什么期望它应该工作?
即使它是真的..它不去内:(strrpos($ url,“http://”)=== true – 2012-04-23 11:53:30
strrpos永远不会返回'true'。 – 2012-04-23 11:55:01
lol ..它虽然返回false ... – 2012-04-23 11:56:43
有什么期望的输出?基于函数的名字几乎在代码中都是错误的。 – 2012-04-23 11:50:06
我想提取www。并返回没有它的网址...不是最好的功能名称,我知道 – 2012-04-23 11:51:44