как предотвратить вывод функции system () в браузере? - PullRequest
1 голос
/ 15 декабря 2011

Я использую system() PHP-функцию для запуска некоторых команд curl, подобных этой system("curl command here",$output);, но она отображает результаты на экране. Любой способ избежать этого вывода?

Ответы [ 5 ]

5 голосов
/ 15 декабря 2011

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

system () аналогична версии C-функции в том, что она выполняет данную команду и выводит результат.

Так что всегда выводит.Вместо этого используйте exec Docs , который возвращает (а не выводит) вывод программы:

$last =  exec("curl command here", $output, $status);
$output = implode("\n", $output);

Или (только для полноты) использовать буферизацию вывода Документы :

ob_start();
system("curl command here", $status);
$output = ob_get_clean();
3 голосов
/ 15 декабря 2011

Вы можете попробовать использовать буферизацию вывода.

ob_start();
system("curl command here",$output);
$result = ob_get_contents();
ob_end_clean();
1 голос
/ 15 декабря 2011

Нет, вы должны использовать PHP curl library

1 голос
/ 15 декабря 2011

Функция system отображает вывод вашей команды, так что вам не повезло.

Вы хотите изменить system на exec .Эта функция не будет отображать вывод команды.

1 голос
/ 15 декабря 2011

Вы можете изменить командную строку и добавить «1> / dev / null 2> & 1» или - более элегантно - выполнить процесс с pipe (см. Пример # 2).

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

...