Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
system
(PHP 3, PHP 4, PHP 5)
system - выполняет внешнюю программу и отображает вывод.Описание
string system (string command [, int return_var])
system() похожа на C-версию этой же функции тем, что выполняет данную команду command и выводит результат. Если предоставлена переменная в качестве второго параметра, то возвращается статус-код выполненной команды, записанный в эту переменную.
Предупреждение!Если вы разрешаете передачу данных из пользовательского ввода в эту функцию, то вы должны использовать escapeshellarg() или escapeshellcmd(), чтобы гарантировать, что пользователь не выкинет какой-нибудь трюк с системой путём выполнения произвольных команд.
Примечание: если вы начинаете программу с использования этой функции и хотите оставить её работать в фоновом режиме, вы должны гарантировать, что вывод этой программы будет перенаправлен в файл или какой-нибудь другой поток вывода, иначе PHP зависнет, пока не закончится выполнение программы.
Вызов system() пытается также автоматически очистить буфер вывода web-сервера после каждой строчки вывода, если PHP работает как серверный модуль.
Возвращает последнюю строку командного вывода при успехе, FALSE при неудаче.
Если вам нужно выполнить команду и передать все данные из команды непосредственно обратно без интерференции, используйте passthru().
Примеры
Пример 1. system()
echo '<pre>';
// Outputs all the result of shellcommand "ls", and returns
// the last output line into $last_line. Stores the return value
// of the shell command in $retval.
$last_line = system('ls', $retval);
// Printing additional info
echo '
</pre>
<hr />Last line of the output: ' . $last_line . '
<hr />Return value: ' . $retval;
Примечания
ВниманиеЕсли вы собираетесь передавать функции данные, отправленные пользователем, вы должны использовать функции escapeshellarg() или escapeshellcmd() для того, чтобы обезопасить исполнение команд.
ВниманиеЗамечание: Если вы собираетесь использовать эту функцию в программе, работающей в качестве демона, убедитесь, что стандартный вывод функции направлен в файл или другой поток, в противном случае PHP зависнет вплоть до конца выполнения программы.
Замечание: В случае работы в безопасном режиме, вы можете запускать что-либо только в пределах safe_mode_exec_dir. В настоящее время, использование .. в пути запрещено
В случае работы в безопасном режиме, все слова, следующие за начальной командой, рассматриваются как единый аргумент. То есть echo y | echo x будет работать как echo "y | echo x".
Смотрите также
exec(), passthru(), popen(), escapeshellcmd(), pcntl_exec(), backtick operator. Описание на ru2.php.netОписание на php.ru