使用exec时PHP没有回显数据

时间:2013-11-30 16:00:53

标签: php shell command echo

我在php中使用exec函数时遇到问题。 我尝试在执行shell cmd后回显参数。我的问题是,执行shell cmd后没有发回任何参数,如果我编辑exec行,一切正常。这是代码:

    ...
    $command = 'avconv -i ' . 'path' . $targetFolder . '/' . $id . '.' . $fileParts['extension'] . ' -vcodec libx264 -r 24 -strict -2 -crf 24 ' . 'path' . $targetFolder . '/' . $id . '.mp4';
    exec($command);

    echo $var;
    echo $var2;
    echo $var3;

没有数据回传。

    ...
    echo $var;
    echo $var2;
    echo $var3;

数据如预期的那样回荡。

那么执行shell cmd的问题在哪里?我是否必须调用另一个函数而不是exec?

当我在执行之前写回声时,它们也没有回应。 shell脚本可以工作。

1 个答案:

答案 0 :(得分:0)

问题是由调用者设置的超时。它在具体时间后自动返回并且没有发送回波数据。

我的解决方案是创建一个单独的脚本,其中包含我作为守护进程执行的转换过程。

exec('nohup php ./../cgi/convert.php ' . $input . ' ' . $output . ' > /dev/null 2>&1 &');