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


(PHP 4, PHP 5)

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

Описание

string system ( string $command [, int &$return_var ] )

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

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

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

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

command

Команда, которая будет выполнена.

return_var

Если есть аргумент return_var, то код возврата выполняемой команды будет записан в эту переменную.

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

Возвращает последнюю строку вывода команды в случае успеха, и 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 зависнет вплоть до конца выполнения программы.

Замечание: В случае работы в безопасном режиме, вы можете запускать что-либо только в пределах safe_mode_exec_dir. В настоящее время по практическим причинам запрещено использование .. в качестве компонента пути к исполняемому файлу.

Внимание

В случае работы в безопасном режиме, строка с командой экранируется с помощью escapeshellcmd(). Таким образом echo y | echo x становится echo y \| echo x.

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