array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.system.php', 1 => 'system', ), 'up' => array ( 0 => 'ref.exec.php', 1 => 'Функции запуска программ', ), 'prev' => array ( 0 => 'function.shell-exec.php', 1 => 'shell_exec', ), 'next' => array ( 0 => 'book.parallel.php', 1 => 'parallel', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/exec/functions/system.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
system — Выполнить внешнюю программу и отобразить вывод
system() похожа на C-версию этой
функции в том, что она выполняет указанную команду
command
и выводит её результат.
Вызов функции system() также пытается автоматически очистить буфер вывода веб-сервера после каждой строки вывода, если PHP работает как модуль сервера.
Если вам нужно выполнить команду и получить все данные из команды непосредственно без каких-либо препятствий, используйте функцию passthru().
command
Команда, которая будет выполнена.
result_code
Если передан аргумент result_code
, то в эту
переменную будет записан код возврата выполненной команды.
Возвращает последнюю строку вывода команды в случае успешного выполнения, и false
- в случае неудачи.
Пример #1 Пример использования system()
<?php
echo '<pre>';
// Выводит весь результат команды оболочки "ls" и возвращает
// последнюю строку вывода в переменной $last_line. Сохраняет код возврата
// команды в $retval.
$last_line = system('ls', $retval);
// Выводим дополнительную информацию
echo '
</pre>
<hr />Последняя строка вывода: ' . $last_line . '
<hr />Код возврата: ' . $retval;
?>
Если нужно передавать функции пользовательские данные, вызывают функции escapeshellarg() или escapeshellcmd(), чтобы пользователи не смогли обмануть систему, запустив произвольную команду.
Замечание:
Если нужно вызвать эту функцию в программе, работающей в качестве демона, проверяют, что стандартный вывод функции направлен в файл или другой поток, иначе PHP зависнет вплоть до конца выполнения программы.