2013-08-15 2 views
0

Я бегу простую команду в цикле командование само FFmpeg, но я не верю, что это связано с проблемой так, у меня есть:

Таким образом, если что-то пойдет не так с командой, я могу прочитать результат в журнале. Он работает, однако $ output содержит всю историю оболочки команды. Чтобы уточнить: каждый раз, когда возникает ошибка, весь вывод, который был сгенерирован конкретной командой (включая сотни успешных исполнений из дня), сбрасывается в файл. То, что должно быть записано в 5 строк, - это, скорее всего, 1000+ история строк. Я использовал тот же самый код в CentOS, и это дало мне ожидаемый вывод только результата, сгенерированного экземпляром, который был недавно выполнен.

ответ

0

От documentation:

Обратите внимание, что если массив уже содержит некоторые элементы, Exec() будет добавляться к концу массива. Если вы не хотите, чтобы функция добавляла элементы, вызовите unset() на массив, прежде чем передавать его на exec().

Я не могу объяснить, почему он работал по-разному на CentOS.

+0

unset ($ output); работал отлично. Благодарю. Я думаю, CentOS очищал $ output каждый раз, когда exec() называется –

+0

. Я не вижу, как OS может это сделать, это часть PHP. Возможно, это старая версия PHP, хотя в документе нет комментариев к версии, которые говорят, что она изменилась. – Barmar