Система () Функція
Системна функція в PHP приймає строковий аргумент з командою для виконання, а також будь-які аргументи, які ви хочете передати цій команді. Ця функція виконує вказану команду та скидає будь-який отриманий текст у вихідний потік (або вихід HTTP у ситуації з веб-сервером, або консоль, якщо ви використовуєте PHP як інструмент командного рядка). Повернення цієї функції є останнім рядком виводу з програми, якщо він випускає текст.
Exec () Функція
Системна функція є досить корисною та потужною, але одна з найбільших проблем з нею полягає в тому, що весь отриманий текст з програми надходить безпосередньо у вихідний потік. Будуть ситуації, коли ви хочете відформатувати отриманий текст і відобразити його якось по-іншому, або взагалі не відобразити його.
Для цього ідеально адаптована функція exec в PHP. Замість автоматичного скидання всього тексту, що генерується програмою, виконується у вихідний потік, це дає вам можливість помістити цей текст у масив, повернутий у другому параметрі до функції:
Shell_exec () Функція
Більшість програм, які ми виконували до цього часу, були більш-менш реальними програмами1. Однак середовище, в якому працюють користувачі Windows та Unix, насправді набагато багатше, ніж це. Користувачі Windows мають можливість використовувати програму Windows Command Prompt, cmd.exe Ця програма відома як командна оболонка.
PassThru () Функція
Одна із захоплюючих функцій, яку надає PHP, аналогічна тій, яку ми бачили досі, - це функція passthru. Ця функція, як і інші, виконує програму, про яку ви їй кажете. Однак він переходить до негайного надсилання вихідної інформації з цієї програми у вихідний потік, з яким PHP працює в даний час (тобто або HTTP у сценарії веб-сервера, або оболонка у версії PHP командного рядка).
Proc_open () Функція і POPEN ()
функція
proc_open () схожий на popen (), але забезпечує набагато більший ступінь контролю над виконанням програми. cmd - команда, яку слід виконати оболонкою. Дескрипторспект - індексований масив, де ключ представляє номер дескриптора, а значення представляє, як PHP передасть цей дескриптор дочірньому процесу. Труби будуть встановлені в індексований масив файлових покажчиків, які відповідають кінці PHP будь-яких створених труб. Повернене значення - це ресурс, що представляє процес; ви повинні звільнити його за допомогою proc_close (), коли закінчите з ним.
proc_open()
і теpopen()
, і інше, що дозволяє більш високий ступінь контролю над породженим процесом.