system

(PHP 4, PHP 5, PHP 7, PHP 8)

systemВыполняет внешнюю программу и отображает вывод

Описание

system(string $command, int &$result_code = null): string|false

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

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

Функция passthru() помогает, когда требуется выполнить команду и вернуть сырые данные из команды без посредников.

Список параметров

command

Команда, которую выполнит функция.

result_code

Функция запишет в переменную код статуса возврата команды, которую выполнила, если в аргументе result_code передали переменную.

Возвращаемые значения

В случае успешного выполнения функция возвращает последнюю строку вывода команды, иначе возвращается false.

Примеры

Пример #1 Пример запуска внешней команды и вывода результата функцией system()

<?php

echo '<pre>';

// Функция выводит полный результат shell-команды ls,
// а последнюю строку вывода возвращает в переменной $last_line.
// Функция сохраняет код возврата команды в переменной $retval
$last_line = system('ls', $retval);

// Выводим дополнительную информацию
echo '
</pre>
<hr />Последняя строка вывода: '
. $last_line . '
<hr />Код возврата: '
. $retval;

?>

Примечания

Внимание

Команду экранируют функцией escapeshellcmd(), а отдельные аргументы команды функцией escapeshellarg(), когда разрешают передавать в функцию пользовательские данные, чтобы пользователи обманом не заставили систему выполнить произвольные команды.

Замечание:

При запуске программы с этой функцией вывод программы перенаправляют в файл или другой поток вывода, чтобы программа продолжала работать в фоновом режиме. PHP зависнет до завершения выполнения программы, если не перенаправить вывод.

Смотрите также

  • exec() - Выполняет внешнюю программу
  • passthru() - Выполняет внешнюю программу и отображает необработанный вывод
  • popen() - Открывает файловый указатель процесса
  • escapeshellcmd() - Экранирует метасимволы командной строки
  • pcntl_exec() - Выполняет указанную программу в пространстве текущего процесса
  • Оператор исполнения