为什么这个独立的代码不起作用:

$link = 'https://google.com';
$unacceptables = array('https:','.doc','.pdf', '.jpg', '.jpeg', '.gif', '.bmp', '.png');

foreach ($unacceptables as $unacceptable) {
        if (strpos($link, $unacceptable) === true) {
            echo 'Unacceptable Found<br />';
        } else {
            echo 'Acceptable!<br />';
        }
}


每次打印都可以接受,即使$link变量中包含https。

最佳答案

如有疑问,请阅读the docs


  [strpos]返回大海捞针中第一次出现针的数字位置。


所以你想尝试更多类似的东西:

// ...
if (strpos($link, $unacceptable) !== false) {


因为否则strpos返回一个数字,而您正在寻找布尔true

关于php - 简单的PHP strpos函数不起作用,为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56337212/

10-11 15:39