PHP exec,每次执行exec后清除输出缓冲区?

时间:2016-02-13 08:55:19

标签: php

我正在使用PHP的exec函数在命令行上调用应用程序:

foreach($jobs as $job)
{
    exec($job['command'], $output);

    if($cmdOutput = json_decode($output[0], true))
        $log->addInfo($cmdOutput['message']);
    else
        $log->addError('Invalid JSON response');
}

命令行中的程序将返回1行输出。它总是一个JSON编码的字符串(除非有一个我没有考虑到的错误)。例如:

{"response":false,"message":"No ads found"}

问题是每次运行后输出缓冲区都没有被清除,因此每次迭代时$output[0]的值总是相同的。

如何在每次迭代后清除输出缓冲区?

1 个答案:

答案 0 :(得分:0)

试试这个

foreach($jobs as $job)
{
   $output = array();
    exec($job['command'], $output);

    if($cmdOutput = json_decode($output[0], true))
        $log->addInfo($cmdOutput['message']);
    else
        $log->addError('Invalid JSON response');

   unset($output);
}