Новые книги

Это захватывающая и практически полная история крупнейшей IT-компании России, основанная на десятках авторских интервью с теми, кто строил главный поисковик Рунета начиная с 90-х и заканчивая сегодняшним днем.
У вас в руках самая знаменитая книга по стратегии, переведенная на 40 языков мира. В ее основе лежит простая идея. Лучше найти свой голубой океан, чем оставаться в алом океане с жесткой конкуренцией, истощающей всех игроков этой индустрии. Десятки примеров и предложенная методология помогут вам найти свой голубой океан.

4-е издание.

XI. Функции запуска программ



XI. Функции запуска программ


escapeshellcmd


escapeshellcmd -- убирает shell метасимволы

Описание


string escapeshellcmd(string command);
EscapeShellCmd() убирает любые символы в строке, которые могут быть использованы в командном интерпретаторе как произвольные команды. Эту функцию нужно использовать, что бы убедится, что все ваши данные введены правильно, и эту функцию лучше всего вставлять в функции exec() или system(). Стандартное использование этой функции выглядит так:
system(EscapeShellCmd($cmd))

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().

[Назад][Содержание][Вперед]