exec() возвращает не только последнюю строку :(

jeno

Новичок
exec() возвращает не только последнюю строку :(

вообщем, есть комманда конвертирования видео...ее нужно запустить с помощью рнр, дождаться последней строки, и в зависимости от содержимого этой строки, выполнить функцию...
вот этот скрипт:

PHP:
$com=exec("command...");
if(ereg("TEXT",$com)){
	func1();
}else{
	func2();
}
проблема в том, что скрипт почему-то выводит все что ему возвращает программа... :rolleyes:
п.с.а программа возвращает не просто текст, а как бы "динамический" текст (просто не знаю как это назвать) т.е.текст постоянно обновляется...не бежит, а обновляется... (как wget)
п.с.с.скрипт запускаю я командной строки (php -q convert.sh)
 

jeno

Новичок
пробовал..
написано что он возвращает только последнюю строку, но я вижу что это не так....

-~{}~ 30.07.07 00:27:

я вижу я допустил ошибку, надо не вот так:

Код:
exec($com)
а вот так:

Код:
exec($com,$return_text)
и потом в ereg вставить return_text....
но это если честно нечего не меняет...только что проверил...
 

jeno

Новичок
что тут читать?
exec (string command [, array output [, int return_var]])

аргументы:
№1 - комманда
№2 - масив в который будут записываться возвращаемые строки
№3 - переменная в которую будет записан return-статус команды...

даже если я выполняю вот такой скрипт:

Код:
<?exec($com,$return_array,$return_status);?>
он всеравно начинает выводить все на экран...
не пойму...
п.с.я ж не делаю print... :/

-~{}~ 30.07.07 01:09:

ob_start(); и т.д. не помогает... :(
но оно ж вроде и не должно работать в консоли...

есть вообще выход из этого положения?
 

phprus

Moderator
Команда форума
jeno
он всеравно начинает выводить все на экран...
Может выводится то, что твоя программа выводит в стандартный поток ошибок? Попробуй дописать после команды 2>&1 Это перенаправит stderr в stdout.
 

jeno

Новичок
супер!!! все работает отлично!!! спасибо огромное!!! :)
сам бы некогда не догадался...
 

phprus

Moderator
Команда форума
jeno
Программа печатающая в stderr, что-то кроме сообщений об ошибках, это по моему не нормально.
 

Gas

может по одной?
ffmpeg, например, кидает в stderr инфу не только об ошибках, но видео media-info и процесс конвертирования, так-что нет ничего невозможного :)
 

SiMM

Новичок
> так-что нет ничего невозможного
Речь не о том, что возможно, а что нет, а о том, что это ненормально.
 

jeno

Новичок
и wget видно тоже в stderr передает все...так как с ним та же трабла была ;)
 
Сверху