php strpos():参数#2($needle)必须是字符串类型,数组给定[重复]

mbjcgjjk  于 2023-04-28  发布在  PHP
关注(0)|答案(1)|浏览(203)

此问题已在此处有答案

String contains any items in an array (case insensitive)(15个回答)
6天前关闭。
你好
我有这个代码:

if ( strpos( $_GET[ 'y' ], array( '/', '.', '\\', '%', '#', ';' ) ) === false

它在php5上工作得很好,但现在在php 8上我得到这个错误:

strpos(): Argument #2 ($needle) must be of type string, array given

我必须完全摆脱这条线吗?或者有其他解决方案吗?
谢谢大家。

mf98qq94

mf98qq941#

如果您阅读了文档https://www.php.net/manual/en/function.strpos.php,您可以看到两个参数都需要是字符串(正如错误实际告诉您的那样)。
如果你想搜索多个字符串,要么使用正则表达式

preg_match()

或者在网上搜索有多针的strpos。它甚至在堆栈溢出strpos() with multiple needles?Using 2 or more needles when using strpos中得到了回答
希望这有帮助;)

相关问题