PHP json_encode()生成HTTP 500

PHP json_encode()生成HTTP 500,php,arrays,json,Php,Arrays,Json,我有一个PHP5.3.3数组需要进行json_编码;编码失败,Apache返回HTTP 500 数组包含Snort规则;直到最近,该数据库还包含了大约700条规则,而前几天又添加了大约10000条规则。这就是web应用程序崩溃的时候。应用程序通过PHP JSON编码检索数据,因此我对JSON_进行解码,然后通过foreach循环将数据重新构造为新的临时数组。作为构建新阵列的一部分,我使用entu引用Snort规则的选项部分,否则我会遇到浏览器显示问题。一旦新阵列完成,我 $data = json

我有一个PHP5.3.3数组需要进行json_编码;编码失败,Apache返回HTTP 500

数组包含Snort规则;直到最近,该数据库还包含了大约700条规则,而前几天又添加了大约10000条规则。这就是web应用程序崩溃的时候。应用程序通过PHP JSON编码检索数据,因此我对JSON_进行解码,然后通过foreach循环将数据重新构造为新的临时数组。作为构建新阵列的一部分,我使用entu引用Snort规则的选项部分,否则我会遇到浏览器显示问题。一旦新阵列完成,我

$data = json_encode(array_values($temp));
…这是我的代码以前工作的地方,但现在失败了

如果您不熟悉Snort规则,则规则的选项部分示例如下:

flow:established,to_server; content:"?sid="; http_uri; pcre:"/\?sid=[0-9A-F]{180}/U"; reference:url,doc.emergingthreats.net/2007142; classtype:trojan-activity;
……还有

json_encode notes数据的PHP文档必须是UTF-8,根据mb_detect_编码,我的是ASCII。我看到过其他JSON文章中有HTTP 500问题。许多都与我的问题无关,尽管有一个问题引起了我的注意,很容易被排除。。。我增加了设置时间限制,尽管这似乎不是问题所在。故障发生得非常迅速

我不知道还能做些什么来排除故障

非常感谢你的专业知识

谢谢

==编辑=== 带有新数据的代码在开发环境中工作

开发工作 *Apache/2.2.8 *PHP5.2.5

Prod不起作用 *Apache/2.4.2
*PHP 5.5.3

因为错误是在添加更多记录时开始的,我怀疑脚本现在使用了太多内存。也许生产中的内存限制低于开发中的内存限制


这里记录了解决方案:

尽管我的服务器运行的是PHP7.3,但我还是遇到了相同的错误500


它缺少未安装的mysqli模块,我在服务器端使用它,所以如果您使用它,请在PHP配置中设置它。问题已解决。

您的PHP日志中是否有任何输出?PHP.ini已将错误日志注释掉。假如我能批准那项变更,那就需要一个星期。Apache日志没有帮助。您有任何方法在本地测试相同的数据集吗?这纯粹是猜测,但可能是因为现在您有10000条规则,脚本可能超出了允许的内存限制。请参阅本页了解更多信息:相同的数据和代码在应用程序的dev实例中工作。。。为问题添加更多信息…mb_detect_编码也只是应用启发式。我宁愿使用UTF-8的mb_check_编码,或者如果你想限制自己使用ASCII的话;我的代码解决了这个问题。谢谢Dave。接下来,我的本地开发环境允许不区分大小写的文件名,但我的服务器有严格的文件名,这两者之间也有区别。因此,另外500个原因是试图包含一个PHP脚本,该脚本在Windows本地开发环境中运行良好,但在远程Linux环境中不存在。
flow:established,to_server; content:"|00 00 00 83|"; depth:4; content:"<CPU>"; content:"</CPU><"; distance:0; content:"<MEM>"; content:"</MEM><"; distance:0; reference:url,doc.emergingthreats.net/bin/view/Main/TrojanDropper497; classtype:trojan-activity;