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


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

1.列出项目

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; }

由于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

你必须这样做

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

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

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

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

if (
strpos($page_name_ulter,'dissertation') !== false || 
strpos($page_name_ulter,'vendor') !== false
) {
echo 'Founded';
}

您需要了解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; }

正如其他人所提到的,您应该知道strpos的期望,只需看看这里:strpos以下建议是减少对strpos 的多次函数调用

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

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

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

希望这能帮助