Как я могу передать вывод рейка с помощью php? - PullRequest
0 голосов
/ 16 июня 2011

Я создаю RAKEFILE и хочу отобразить вывод на странице, сгенерированной php, по мере ее выполнения.

Я пытался использовать system(), поскольку в документации PHP упоминается следующее:

Системный вызов () также пытается автоматически очистить выходной буфер веб-сервера после каждой строки вывода, если PHP работает как серверный модуль.

Кажется, что это работает с несколькими командами оболочки, но когда я выполняю рейк, я получаю только первую строку:

(in /Users/path/to/proj)

Есть идеи?

Приветствия!

Ответы [ 3 ]

1 голос
/ 16 июня 2011

Попробуйте использовать exec () function

   exec($command, $output); 

$. Выходные данные - это массив

//retrieved data
for($out = '',$x = 0,$len = count($output); $x < $len; $x++) {
      $out .= $output[$x] . "\r\n";
}

или просто:

$out = join("\r\n", $output); 
0 голосов
/ 17 июня 2011

Отключает обе функции system() & exec() на самом деле работают.Сгенерированный вывод рейка при использовании --verbose не учитывается.Вот почему я был смущен.Если у кого-то есть более глубокие знания о различии, делитесь:)

0 голосов
/ 16 июня 2011

Системный вызов () также пытается автоматически очистить выходной буфер веб-сервера после> каждой строки вывода, если PHP работает как серверный модуль.

Это означает, что вы будете толькополучить последнюю строку вывода из возвращаемого значения.Пример на странице справочника system () показывает это и предлагает использовать passthru () для получения необработанного вывода.Я обычно использую exec (), хотя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...