strrpos php函数无法正常工作

时间:2012-04-23 11:42:56

标签: php string

我有这个功能:

 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条件。为什么?

3 个答案:

答案 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 );
}