如何使用strpos来确定输入字符串中是否存在字符串?

Sco*_*t B 20 php strpos

$filename = 'my_upgrade(1).zip';
$match = 'my_upgrade';

if(!strpos($filename, $match))
    {
    die();
    }
else 
   {
   //proceed
   }
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,当文件名不包含文本字符串"my_upgrade"时,我正试图从脚本中消失.但是,在给出的示例中,它不应该死,因为" my_upgrade(1).zip "包含字符串" my_upgrade ".

我错过了什么?

phi*_*hag 49

strposfalse如果找不到字符串,则返回,0如果在开头找到它.使用identity运算符来区分这两者:

if (strpos($filename, $match) === false) {
Run Code Online (Sandbox Code Playgroud)

顺便说一句,这个事实记录在官方文档中带有红色背景和感叹号.


Ris*_*abh 7

strpos()函数区分大小写。

if(strpos($filename, $match) !== false)
        {
        // $match is present in $filename
        }
    else 
       {
       // $match is not present in $filename 
       }
Run Code Online (Sandbox Code Playgroud)

用于不区分大小写。 使用stripos()它来查找一个字符串在另一个字符串中的首次出现的位置(不区分大小写)


Max*_*ard 5

if (strpos($filename, $match) === false)
Run Code Online (Sandbox Code Playgroud)

否则,strpos将返回0(匹配的索引),即false.

===运营商也将比较变量的类型(布尔!=整数)