PHP 8.3.1中检测空格+制表符的str_contains代码失效求助
问题原因
你当前代码的问题是用了字面量字符串"[space][tab]"来匹配,但PHP不会将[space]和[tab]解析为实际的空格和制表符,它只会去查找包含[space][tab]这一串字符的内容,自然匹配不到你要的空格加制表符组合。
修正方案
直接使用PHP的转义字符表示制表符,空格用普通空格即可,修改后的代码如下:
if(str_contains($row['example'], " \t")){ // 执行你的特定逻辑 }
额外验证方法
如果你不确定目标字符串里是否真的存在空格加制表符的组合,可以用bin2hex()函数查看字符串的十六进制编码:
// 输出字符串的十六进制形式,空格是20,制表符是09,组合起来会显示2009 echo bin2hex($row['example']);
内容的提问来源于stack exchange,提问作者Lars Jänsch
相关产品推荐
相关产品推荐

