这就是问题所在:这行代码
preg_match("/^([^<>}{\|])+$/", "Testing bla di bla and more stupid text text text")
完全停止我的脚本。如果我从中取出最后一个“文本”,它就会起作用并给我一个结果。
原始代码不是我的,我不擅长正则表达式,但想法是检查文本中是否有以下特殊字符:
^ < > { } \ |
在我的搜索中,我发现了一些关于的内容PREG_RECURSION_LIMIT_ERROR
,但将其设置为 10000 并没有改变任何内容。preg_last_error()
也无济于事,因为脚本只是在它可以输出或记录任何内容之前停止。PHP 错误日志中没有任何内容。
我有两个问题:
- 为什么它只是在没有任何通知的情况下停止?
- 是否有更好的方法来编写可能不会导致此问题的正则表达式模式?
谢谢!
PS:我正在运行PHP 5.2.9版本,想法是防止特殊字符被保存,所以我想检测它们的存在并拒绝提交的文本。