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

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

escapeshellcmd

Убирает shell метасимволы.

Синтаксис:

string escapeshellcmd(string command);

Убирает любые символы в строке, которые могут быть использованы в командном интерпретаторе как произвольные команды. Эту функцию нужно использовать, что бы убедится, что все ваши данные введены правильно, и эту функцию лучше всего вставлять в функции exec() или system().

Стандартное использование этой функции выглядит так:

system(EscapeShellCmd($cmd))

exec

Запуск внешней программы.

Синтаксис:

string exec(string command [, string array [, int return_var]]);

Функция exec() скрыто от пользователя запускает программу из строки command, весь стандартный вывод отключен. Возвращает последнюю строку результата выполнения программы.

Если параметр array установлен, то указанный массив будет заполнен выводом из программы. Помните, если массив уже содержит данные, то exec() добавляет свои данные в конец массива. Для очистки массива можно использовать функцию unset().

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

<?php

$se = "dir c:";

$s0 = exec($se, $sa, $sr);

echo "При запуске команды "$se" последняя выведенная строка была:n",

$s0,"n Код возврата ($sr) nА это все что было выведено: ";

print_r($sa);

?>

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

system

Запуск внешней программы с выводом результата.

Синтаксис:

string system(string command, int [return_var]);

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

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

passthru

Запускает внешнюю программу и выводит данные напрямую.

Синтаксис:

string passthru(string command [, int return_var]);

Функция passthru() похожа на функцию exec() для запуска command. Если параметр return_var установлен, то результат Unix команды помещается здесь. Эта функция должна использоваться вместо exec() или system() тогда, когда вывод из Unix команды является двоичными данными, которые должны быть переданы непосредственно обратно в окно просмотра(browser). Это можно использовать, например, для запуска утилиты pbmplus для вывода непосредственно потока изображения. Установка типа image/gif и вызов программы pbmplus, чтобы вывести gif-рисунок, вы можете создавать PHP скрипты, которые выводят изображения непосредственно.