Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP限制exec()的输出大小_Php_Exec - Fatal编程技术网

PHP限制exec()的输出大小

PHP限制exec()的输出大小,php,exec,Php,Exec,我正在使用PHP exec()函数执行一个c代码。有时,代码的输出超过php内存限制,并抛出php致命错误。是否有任何方法可以限制输出大小,或者限制传递给exec()的数组大小,以便忽略N个字符以外的任何输出 我曾尝试使用register\u shutdown\u function()捕捉致命错误,但它似乎不起作用。任何其他解决方案都是受欢迎的。您可以将输出重定向到一个文件(例如,将>output.log附加到命令),并在exec()完成后读取需要从该文件中读取多少内容,也可以使用proc\u

我正在使用PHP exec()函数执行一个c代码。有时,代码的输出超过php内存限制,并抛出php致命错误。是否有任何方法可以限制输出大小,或者限制传递给exec()的数组大小,以便忽略N个字符以外的任何输出


我曾尝试使用register\u shutdown\u function()捕捉致命错误,但它似乎不起作用。任何其他解决方案都是受欢迎的。

您可以将输出重定向到一个文件(例如,将
>output.log
附加到命令),并在
exec()
完成后读取需要从该文件中读取多少内容,也可以使用
proc\u open()
而是使用一个流作为输出,并在执行完成时仅读取流的部分内容。

我在尝试获取CURL的输出时遇到了这个问题,但输出没有完成

当我使用
shell\u 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>";
$output=shell\u exec('curl-k-X GET-H“Accept:application/json”-H“内容类型:application/json”http://localhost:8000/services"');
回显“$output”;
您可以阅读有关php文档的更多信息