strpos:2个结果但是2个相似的字符串

时间:2013-12-02 21:08:07

标签: php string strpos

我不知道该怎么做。

2个参数: 第一:

  

0 D:/ Google Drive / Dokumente / Programmierung / Webentwicklung / htdocs / BeLL__Webseite_fuer_Filmfestival / php / checkSession.php(6):Phip / Engine / Login-> checkSession()   1 D:/ Google Drive / Dokumente / Programmierung / Webentwicklung / htdocs / BeLL__Webseite_fuer_Filmfestival / login.php(3):include('D:/ Google Drive ...')    {主要}

第二

  

D:/ Google Drive / Dokumente / Programmierung / Webentwicklung / htdocs / BeLL__Webseite_fuer_Filmfestival / php / Phip / Engine / Login / Login.php

php函数

private function clean( $clean ) {
    $clean = str_replace( '\\', '/', $clean );
    if ( !strpos( $clean, 'D:/Google Drive/Dokumente/Programmierung/Webentwicklung/htdocs/BeLL__Webseite_fuer_Filmfestival' )) {
        return  str_replace( 'D:/Google Drive/Dokumente/Programmierung/Webentwicklung/htdocs/BeLL__Webseite_fuer_Filmfestival', '', $clean );
    } 
}

问题:

false :var_dump(!strpos($ param1,'D:/ Google Drive / Dokumente / Programmierung / Webentwicklung / htdocs / BeLL__Webseite_fuer_Filmfestival'));

true :var_dump(!strpos($ param2,'D:/ Google Drive / Dokumente / Programmierung / Webentwicklung / htdocs / BeLL__Webseite_fuer_Filmfestival'));

我无法理解这一点,因为这个字符串在两个字符串中...有人可以帮助我吗? 为什么这不一样?

非常感谢你!我希望你能解开我想要的东西。

1 个答案:

答案 0 :(得分:1)

您错误地使用了strpos()

  

strpos() [找到]在haystack字符串中第一次出现针的数字位置。

更重要的是:

  

警告:此函数可能返回布尔值FALSE,但也可能返回非布尔值,其值为FALSE。有关更多信息,请阅读有关布尔值的部分。使用===运算符测试此函数的返回值。

所以请使用它:

strpos($needle, $haystack) === false // true if needle is not contained in haystack
strpos($needle, $haystack) !== false // true if needle is contained in haystack