为什么这个独立的代码不起作用:
$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/