System не возвращает последнюю строку вывода?

Здравствуйте.
При выполнении в скрипте
$result_load = system("/usr/bin/wget -i $from -nH -r --cut-dirs=2 --directory-prefix=$to -nc");

не возвращает последнюю строку выводу.
var_dump($result_load);
или если
$result_load = system("/usr/bin/wget -i $from -nH -r --cut-dirs=2 --directory-prefix=$to -nc", $output);
var_dump($output);

всегда возвращает string(0) "" .
Но судя по документации так быть не должно.
Wget выполняется как надо, но вот нужна проверка типа типа если результат != null, то показывать сообщение, что всё нормально.
  • Вопрос задан
  • 206 просмотров
Пригласить эксперта
Ответы на вопрос 1
@CycaHuH
system возвращает вывод из stdout, а wget пишет в stderr.
Можно было бы перенаправить вывод из stderr в stdout так:
$result_load = system("/usr/bin/wget -i $from -nH -r --cut-dirs=2 --directory-prefix=$to -nc 2>&1");

но интерпретатор экранирует спецсимволы.

Стоит посмотреть в сторону popen
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы