我正在使用PHP exec()函数来执行c代码。有时代码的输出超出了php内存限制,它会抛出PHP Fatal Error。有没有什么方法可以限制输出大小,或传递给exec()的数组大小,以便忽略超出N个字符的任何输出。
我尝试使用register_shutdown_function()捕获致命错误,但它似乎不起作用。任何其他解决方案也是受欢迎的。
答案 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
上阅读更多内容