iDokuro
@iDokuro
Тугодум

Как получить ответ программы из консоли в переменную?

Привет всем, есть вопрос.

Идёт обращение к ffmpeg через PHP функцию passthru();
Более точно - мне нужно получить инфу о видео, что бы потом распарсить её.

Делаю к примеру так:

$response = passthru('ffmpeg -i /home/dokuro/vedeos/60fps_FREELY_TOMORROW_-_Hatsune_Miku.mp4');

var_dump($response);


Но в итоге $response - NULL. Но если выполнить команду в терминале - ответ я получаю.

Так же если выполнить команду, но указать ей записать ответ в файл - он записывается.

passthru('ffmpeg -i /home/dokuro/vedeos/60fps_FREELY_TOMORROW_-_Hatsune_Miku.mp4 2> result.txt');


Как сделать что бы оно записалось в переменную? Возможно ли это?
  • Вопрос задан
  • 552 просмотра
Решения вопроса 1
comm1x
@comm1x
Web-developer
Используйте функцию exec()
У нее есть массив строк, которую выводит команда.

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

ffmpeg ... 2>&1
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
miraage
@miraage
Старый прогер
php.net/manual/en/function.passthru.php

passthru('ffmpeg -i /home/dokuro/vedeos/60fps_FREELY_TOMORROW_-_Hatsune_Miku.mp4', $response);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы