Учебник по основам PHP. PHPBeginner

Запуск внешних приложений


escapeshellarg

i Добавление кавычек в строку аргументов команды ОС

string escapeshellarg (string arg)

Возвращается строку arg, в которую добавляются одинарные кавычки (вокру! самой строки и вокруг каждой одинарной кавычки), что позволяет передавать аргументы запуска командам операционной системы, если необходимо передать одиночный параметр, содержащий пробелы или другие символы разделители. Это бывает полезно для систем Unix при использовании функций exec(), system().

system('ls " .EscapeShel lArg($dir))

См. также: ехес(), popen(), system() и «оператор запуска внешних программ».

escapeshellcmd

Цитирование метасимволов командной строки

string escapeshellcmd (string command)

Функция возвращает строку command, в которую добавлены цитирующие слеши, это может быть использовано при передаче аргументов командам операционной системы. Также это может быть использовано как средство, предотвращающее запуск произвольных команд пользователем (если им вводятся аргументы запуска).

$е - EscapeShellCmd($usennput).
systemC'echo $e"); // в $е возможно
присутствие пробелов
$f = EscapeShellCmd($filename):
systemt"touch \"/tmp/$f\": Is -1 \"/tmp/$f\""):

См. также: escapeshellarg(), exec(), popen(), system() и «оператор запуска

внешних программ».



exec

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

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

Функция скрыто от пользователя запускает команду операционной системы (оболочки) command. Она возвращает последнюю строку, которую вывела команда command. Если необходимо распечатать все, что вывела команда, используйте функцию PassThru().

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

Если указан аргумент return_var, то в нем будет сохранен код завершения команды.

<? $se = "dir C:\\".
$sO = exec($se. $sa. $sr):
echo "При запуске команды '$se
последняя выведенная строка была:\n".
$sO. "\n Код возврата ($sr)
\nA это все что было выведено: ";
pnnt_r($sa); ?>


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

См. также: system(), PassThru(), popen(), EscapeShellCmd() и «оператор запуска внешних программ».

passthru

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

void passthru (string command [, int return_var])

Функция сходна с ЕхесО: она запускает команду операционной системы command и возвращает в переменной return_var код завершения соответствующей системной команды, но она также выводит все то, что выводится при запуске.

Эта команда может использоваться и в тех случаях, когда внешняя программа выводит двоичные данные; например, с помощью утилиты

pbmplus можно непосредственно отослать браузеру рисунок (предварительно следует отослать заголовок «content-type: image/gif»).

В отличие от функций ехес() и system() она не возвращает никакого значения.

См. также: ехес(), system(), popen(), EscapeShellCmd(), «оператор запуска внешних программ».

system

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

string system (string command [, int return_var])

Функция подобна PassThru(), но она возвращает последнюю строку, выведенную при запуске команды (или FALSE при ошибке). Кроме того, после этого запуска (если была включена буферизация вывода) выводится содержимое буфера.

См. также: ехес(), PassThru(), popent), EscapeShellCmd() и «оператор запуска внешних программ».


Содержание раздела