警告:strpos() 最多需要 3 个参数,第 9 行的 page.php 中给出了 23 个

Warning: strpos() expects at most 3 parameters, 23 given in page.php on line 9

1.List 项

if (strpos($page_name_ulter, 'dissertation' ||  $page_name_ulter, 'vendor' || $page_name_ulter, 'js' || $page_name_ulter, 'css' || $page_name_ulter, 'bootstrap' || $page_name_ulter, 'CI3Xmuqx6MsCFcJf2wod6s0P9Q' ||   $page_name_ulter, 'vendor' || $page_name_ulter, 'vendor' || $page_name_ulter, '=' ||   $page_name_ulter, 'essay?' ||   $page_name_ulter, 'input' ||   $page_name_ulter, 'main.js' || $page_name_ulter, 'main' || $page_name_ulter, 'php/js' || $page_name_ulter, '/' || $page_name_ulter, '.js' || $page_name_ulter, 'rating' || $page_name_ulter, 'intlTelInput' || $page_name_ulter, '.min' || $page_name_ulter, 'images') !== false) { return false; }

你已经这样做了

if (strpos($page_name_ulter, 'dissertation') !== false ||  strpos($page_name_ulter, 'vendor')!== false  and so on

你需要知道strpos()函数的基本句

strpos(字符串、查找、开始)

但在您的情况下,您只在 strpos() 函数中传递了条件。 错了..

检查这个

if (strpos($page_name_ulter, 'dissertation') !== false ||  strpos($page_name_ulter, 'vendor') !== false || strpos($page_name_ulter, 'js') !== false || strpos($page_name_ulter, 'css') !== false || strpos($page_name_ulter, 'bootstrap') !== false || strpos($page_name_ulter, 'CI3Xmuqx6MsCFcJf2wod6s0P9Q') !== false ||strpos($page_name_ulter, 'vendor') !== false || strpos($page_name_ulter, 'vendor') !== false || strpos($page_name_ulter, '=') !== false || strpos($page_name_ulter, 'essay?') !== false || strpos($page_name_ulter, 'input') !== false || strpos($page_name_ulter, 'main.js') !== false || strpos($page_name_ulter, 'main') !== false || strpos($page_name_ulter, 'php/js') !== false || strpos($page_name_ulter, '/') !== false || strpos($page_name_ulter, '.js') !== false || strpos($page_name_ulter, 'rating') !== false || strpos($page_name_ulter, 'intlTelInput') !== false || strpos($page_name_ulter, '.min') !== false || strpos($page_name_ulter, 'images') !== false) { return false; }

PHP strpos 不适用于单个 strpos 函数中的多个 ( OR / || ) 条件。

根据文档:strpos 查找字符串中子字符串第一次出现的位置

要使其正常工作,您需要多个 strposIF 语句

if (
strpos($page_name_ulter,'dissertation') !== false || 
strpos($page_name_ulter,'vendor') !== false
) {

echo 'Founded';
}

由于 strpos() 不能用于多个 && OR || 条件,因此您需要添加 )strpos!== false,如下所示:

if (strpos($page_name_ulter, 'dissertation') !== false ||  strpos($page_name_ulter, 'vendor') !== false || strpos($page_name_ulter, 'js') !== false || strpos($page_name_ulter, 'css') !== false || strpos($page_name_ulter, 'bootstrap') !== false || strpos($page_name_ulter, 'CI3Xmuqx6MsCFcJf2wod6s0P9Q') !== false ||strpos($page_name_ulter, 'vendor') !== false || strpos($page_name_ulter, 'vendor') !== false || strpos($page_name_ulter, '=') !== false || strpos($page_name_ulter, 'essay?') !== false || strpos($page_name_ulter, 'input') !== false || strpos($page_name_ulter, 'main.js') !== false || strpos($page_name_ulter, 'main') !== false || strpos($page_name_ulter, 'php/js') !== false || strpos($page_name_ulter, '/') !== false || strpos($page_name_ulter, '.js') !== false || strpos($page_name_ulter, 'rating') !== false || strpos($page_name_ulter, 'intlTelInput') !== false || strpos($page_name_ulter, '.min') !== false || strpos($page_name_ulter, 'images') !== false) { return false; }

有关功能的更多详细信息:- http://php.net/manual/en/function.strpos.php

注意:- 更好的解决方案是使用 preg_match()

查看手册:- http://php.net/manual/en/function.preg-match.php

正如其他人提到的,您应该知道 strpos 期望什么,只需看这里:strpos 下面的建议是减少对strpos

的多次函数调用

因为你有这么多不同的值,我会建议其他方法。如果您的字符串只包含您要搜索的值,我会选择一个数组,条件可以使用 if (in_array($ultravariable, $arrayWithPossibleValues)) { } $arrayWithPossibleValues 应该是保存您正在搜索的 wach 值的数组。

如果您正在搜索的字符串(ultra 变量)确实包含更多数据,但您只需要检查它是否以您的不同值开头,那么我会选择 preg_match

if ( preg_match("/^(value1|value2|value3)/", $ultravariable)) { } 在这里,您可以将可能的值替换为 value1、value2 等,并记住用 |.

分隔它们

希望对您有所帮助