system - Выполняет внешнюю программу и отображает её вывод
Вернуться к: Функции запуска программ
system
(PHP 4, PHP 5, PHP 7)
system — Выполняет внешнюю программу и отображает её вывод
Описание
$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.
Смотрите также
- exec() - Исполняет внешнюю программу
- passthru() - Выполняет внешнюю программу и отображает необработанный вывод
- popen() - Открывает файловый указатель процесса
- escapeshellcmd() - Экранирует метасимволы командной строки
- pcntl_exec() - Executes specified program in current process space
- оператор "обратный апостроф"
Вернуться к: Функции запуска программ