2013-11-30 3 views
0

У меня проблема с использованием функции exec в php. Я пытаюсь повторить параметры после выполнения оболочки cmd. Моя проблема в том, что после выполнения оболочки cmd никакие параметры не отправляются обратно, если я редактирую строки exec, все работает нормально. вот код:PHP отсутствие эхо-данных при использовании 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; 

данные эхо, как предполагалось.

Так где же проблема с выполнением оболочки cmd? мне нужно вызвать другую функцию, кроме exec?

Когда я пишу эхо до исполнения, они также эхом повторяются. Скрипт оболочки работает.

+0

Пробовал использовать 'echo exec ($ command);'? – Kevin

+0

Я не хочу повторять вывод команды, переменные i echo back - это другие переменные. – Chocolate

+0

Это было просто для отладки. какой результат вы получите, эхом, это может помочь. – Kevin

ответ

0

Проблема была таймаутом, установленным вызывающим абонентом. Он автоматически возвращается через определенное время и не отправляет данные эха.

Моим решением было создать отдельный скрипт, содержащий процесс преобразования, который я выполнил как процесс демона.

exec('nohup php ./../cgi/convert.php ' . $input . ' ' . $output . ' > /dev/null 2>&1 &'); 
Смежные вопросы