Руководство по РНР 3.0 - Функции запуска программ
escapeshellcmd
escapeshellcmd -- убирает shell метасимволы
Описание
string escapeshellcmd(string command);
EscapeShellCmd() убирает
любые символы в строке, которые могут быть использованы в командном интерпретаторе
как произвольные команды. Эту функцию нужно использовать, что бы убедится,
что все ваши данные введены правильно, и эту функцию лучше всего вставлять
в функции
exec() или
system().
Стандартное использование этой функции выглядит так:
exec
exec -- Запуск внешней программы
Описание
string exec(string command, string
[
array
], int [
return_var
]);
exec() запускает программу из строки
command, весь
стандартный вывод отключен. Возвращает последнюю строку результата выполнения
программы. Если вы хотите запустить команду и использовать все данные непосредственно
без всякого вмешательства других программ, то используйте функцию
PassThru().
Если параметр array установлен, то указанный массив
будет заполнен выводом из программы. Помните, если массив уже содержит
данные, то exec() добавляет свои данные. Если вы не хотите, что
бы функция добавляла данные, вызывайте unset()
для массива перед использованием exec().
Если параметр return_var установлен наряду с параметром
array,
то в него записывается результат выполнения команды.
Обратите внимание, что если ваша функция будет использовать данные из
ввода пользователей, то надо использовать EscapeShellCmd()
для того, что бы пользователи не смогли запустить произвольные программы.
См. также system(), PassThru(),
popen()
и EscapeShellCmd().
system
system -- Запуск внешней программы с выводом
результата
Описание
string system(string command, int
[
return_var
]);
System() такая же, как и C версия
этой функции для запуска
command и вывода результата.
Если используется второй параметр, то в него записывается результат выполнения
команды.
Обратите внимание, что если ваша функция будет использовать данные из
ввода пользователей, то надо использовать EscapeShellCmd()
для того, что бы пользователи не смогли запустить произвольные программы.
Вызов System() также пробует автоматически
вставить в буфер вывода web сервера после каждой строки вывода, если PHP
запущен как модель сервера.
Если вы хотите запустить команду и использовать все данные непосредственно
без всякого вмешательства других программ, то используйте функцию PassThru().
См. также exec() и popen()
функции.
passthru
passthru -- Запускает внешнюю программу и выводит
данные напрямую
Описание
string passthru(string command, int
[
return_var
]);
Функция
passthru() похожа на функцию
Exec()
для запуска
command. Если параметр
return_var
установлен, то результат Unix команды помещается здесь. Эта функция должна
использоваться вместо
Exec() или
System()
тогда, когда вывод из Unix команды является двоичными данными, которые
должны быть переданы непосредственно обратно в окно просмотра(browser).
Это можно использовать, например, для запуска утилиты pbmplus для вывода
непосредственно потока изображения. Установка типа
image/gif и вызов
программы pbmplus, чтобы вывести gif-рисунок, вы можете создавать PHP скрипты,
которые выводят изображения непосредственно.
См. также exec() и fpassthru().
Содержание