我有这个功能:
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 ..因为它永远不会达到if条件。为什么?
答案 0 :(得分:1)
strrpos()函数在另一个字符串中查找最后一次出现的字符串的位置。此函数返回成功的位置,否则返回FALSE。永远不会返回TRUE
所以
strrpos($ host,“www。”)将为您的网址指定0,因此0表示为false 添加1到strrpos($ host,“www。”)+ 1这样就可以了
其他明智的strrpos($ host,“www。”)> -1检查这样
答案 1 :(得分:1)
让我们一行一行:
$pos =strrpos($host,"www.");
找到“www。”的位置。 (反方向,嗯?)。
if( $pos === false )
如果我们没找到它(嗯?),请删除前5个(呵呵?)字符,返回其余字符:
$host= substr($host,5);
否则返回整个主持人:
return $host;
那你为什么期望它应该有效?
答案 2 :(得分:0)
为什么不简单地做:
function adjust_url_with_www_extract( $host ) {
return preg_replace( '~^www\.~', '', $host );
}