функция exec не возвращает все строки - PullRequest
8 голосов
/ 14 июня 2011

Моя команда awk работает как положено и возвращает 2 строки в командной строке.

Когда я использую функцию php "exec", она возвращает только вторую строку.

echo exec("awk -v RS=\",\" '/some_text/' test1.html");

Как мне вернуть весь вывод команды оболочки, используя PHP?

1 Ответ

19 голосов
/ 14 июня 2011

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

http://php.net/manual/en/function.exec.php

$out = array();
exec("awk -v RS=\",\" '/some_text/' test1.html", $out);
foreach($out as $line) {
    echo $line;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...