Система () Функция
Системная функция в PHP принимает строковый аргумент с командой для выполнения, а также любые аргументы, которые вы хотите передать этой команде. Эта функция выполняет указанную команду и выводит любой результирующий текст в выходной поток (либо вывод HTTP в ситуации веб-сервера, либо консоль, если вы используете PHP в качестве инструмента командной строки). Возвращение этой функции - последняя строка вывода программы, если она генерирует текстовый вывод.
Exec () Функция
Системная функция довольно полезна и мощна, но одной из самых больших проблем является то, что весь полученный в результате текст из программы направляется непосредственно в выходной поток. Будут ситуации, когда вы захотите отформатировать полученный текст и отобразить его каким-либо другим способом или не отобразить его вообще.
Для этого отлично работает функция exec в PHP. Вместо того, чтобы автоматически выгружать весь текст, сгенерированный исполняемой программой, в выходной поток, он дает вам возможность поместить этот текст в массив, возвращенный во втором параметре функции:
Shell_exec () Функция
Большинство программ, которые мы выполняли до настоящего времени, были более или менее реальными программами1. Однако среда, в которой работают пользователи Windows и Unix, на самом деле намного богаче, чем эта. Пользователи Windows могут использовать программу командной строки Windows, cmd.exe. Эта программа называется командной оболочкой.
PassThru () Функция
Одна захватывающая функция, которую предоставляет PHP, похожая на те, что мы видели до сих пор, это функция passthru. Эта функция, как и другие, выполняет программу, которую вы ей сообщаете. Однако затем он немедленно отправляет необработанный вывод из этой программы в поток вывода, с которым в данный момент работает PHP (т. Е. Либо HTTP в сценарии веб-сервера, либо оболочка в версии PHP командной строки).
Proc_open () Функция и POPEN ()
функция
proc_open () похож на popen (), но обеспечивает гораздо большую степень контроля над выполнением программы. cmd - это команда, которая должна быть выполнена оболочкой. descriptorspec - это индексированный массив, где ключ представляет номер дескриптора, а значение представляет, как PHP передает этот дескриптор дочернему процессу. каналы будут установлены в индексированный массив файловых указателей, которые соответствуют концу PHP всех созданных каналов. Возвращаемое значение является ресурсом, представляющим процесс; Вы должны освободить его с помощью proc_close (), когда закончите с ним.
proc_open()
и тоpopen()
, и другое, что позволяет более высокую степень контроля над порожденным процессом.