PHP中exec()命令的限制? 我使用PHP中的Excel命令执行C++代码,其中ReordOnGuang.E.CPP是基于硬编码参数生成输出(100到数百万条记录)的代码。p> exec('./record_generater 2>&1', $output); print_r($output);

PHP中exec()命令的限制? 我使用PHP中的Excel命令执行C++代码,其中ReordOnGuang.E.CPP是基于硬编码参数生成输出(100到数百万条记录)的代码。p> exec('./record_generater 2>&1', $output); print_r($output);,php,exec,Php,Exec,当输出线的数量被限制在几千条时,它会输出,但当它达到100000到1000000条时,它似乎崩溃了。我如何避免这种PBLM 无关。 如果它可以独立工作,那么它可能与将数百万条记录存储到$output变量中有关 虽然PHP中的字符串可能相当大(内存为2G),但脚本可用的总空间有限,由PHP.ini`文件中的memory\u limit\指定 即使是128M(5.2之前为8M),也可能不足以容纳数百万条线路 您可以尝试将该变量增加到更大的值,看看是否有帮助 但是,你可能仍然会找到更好的方法来从C++

当输出线的数量被限制在几千条时,它会输出,但当它达到100000到1000000条时,它似乎崩溃了。我如何避免这种PBLM如果是这样,这是C++代码本身的问题,与PHP <代码> Exc> <代码>无关。 如果它可以独立工作,那么它可能与将数百万条记录存储到
$output
变量中有关

虽然PHP中的字符串可能相当大(内存为2G),但脚本可用的总空间有限,由PHP.ini`文件中的
memory\u limit\指定

即使是128M(5.2之前为8M),也可能不足以容纳数百万条线路

您可以尝试将该变量增加到更大的值,看看是否有帮助

但是,你可能仍然会找到更好的方法来从C++的可执行文件中获取信息,比如将它写入文件/数据库,并在PHP中一次处理一次,而不是试图将内存存储在一次内存中。 在任何情况下,考虑到必须浏览数百万行的用户体验都不是很好,因此,检查您真正需要从这些数据中得到什么可能是值得的。例如,可以在输出之前以某种方式对其进行聚合或分区


我们在这方面给出的任何建议都需要比目前更多的信息。

当您在浏览器上打印一百万行时,它会崩溃,这有多奇怪?不是在打印过程中,而是在执行过程中,因为我可以使用命令行打印这些记录,但使用浏览器时有pblm(无输出)如果我运行独立C++代码,它工作得很好。当我运行exe并通过管道输出结果并读取文件时,我的工作也很好。但这会使它变得更慢。@user15662:嗯,你想要它慢而可靠,还是快而崩溃?我知道我更喜欢哪一种:-)但是,如果您希望它快速可靠,您需要研究其他方法。要对此提出建议,我们需要更多信息,请参阅更新。