一尘不染

简单的PHP strpos函数不起作用,为什么?

php

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

$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,每次也可以打印。


阅读 349

收藏
2020-05-26

共1个答案

一尘不染

如有疑问,请阅读文档

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

因此,您想尝试更多类似的方法:

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

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

2020-05-26