PHP限制exec()的输出大小

时间:2014-09-18 14:50:58

标签: php exec

我正在使用PHP exec()函数来执行c代码。有时代码的输出超出了php内存限制,它会抛出PHP Fatal Error。有没有什么方法可以限制输出大小,或传递给exec()的数组大小,以便忽略超出N个字符的任何输出。

我尝试使用register_shutdown_function()捕获致命错误,但它似乎不起作用。任何其他解决方案也是受欢迎的。

2 个答案:

答案 0 :(得分:1)

您可以将输出重定向到文件(例如,将> output.log附加到命令中)并在exec()完成后从该文件中读取您需要的内容,或者您​​可以使用{{1而是一个输出流,并在执行完成时只读取一些流的内容。

答案 1 :(得分:0)

当我尝试获取CURL的输出时,我遇到了这个问题,但输出不完整。

当我使用shell_exec时,它对输出没有限制并返回完整输出

例如:

$output = shell_exec('curl -k -X GET -H "Accept: application/json" -H "Content-Type: application/json" "http://localhost:8000/services"');
echo "<pre>$output</pre>";

您可以在php文档shell_exec

上阅读更多内容