Есть ли хороший способ вызвать сценарий CGI из сценария PHP? - PullRequest
2 голосов
/ 06 февраля 2009

Я видел, что в PHP есть функция virtual () , которая будет вызывать скрипт CGI, но так ли это лучше? Могу ли я передать какие-либо параметры этим сценариям?

Я видел несколько примеров использования file_get_contents() или include () и передачи URL-адреса скрипта CGI, но это похоже на взлом.

Ответы [ 2 ]

4 голосов
/ 06 февраля 2009

Используйте exec () , если вы можете вызвать его локально. Если его нужно вызывать как CGI (так как сценарий предназначен для работы только в среде CGI), вам необходимо вызвать его с помощью include () или file_get_contents () . virtual () очистит ваши буферы и добавит вывод подзапроса.

Вы можете передавать параметры через include () , file_get_contents () и virtual () в качестве параметров GET:

http://localhost/cgi-bin/foo?param1=val1&param2=val2

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

При использовании exec () вам нужно будет передавать аргументы так же, как и для любой программы CLI.

foo val1 val2
foo param1=val1 param2=val2

Как вы передадите параметры, будет зависеть от того, как вы хотите разобрать их позже в другой программе / скрипте. Они будут отображаться в вызываемой программе, как если бы вы вызывали ее из командной строки.

0 голосов
/ 07 марта 2012

У меня тоже были проблемы с вызовом CGI-скрипта со страницы php. Позже я понял, что проблема заключалась в том, что мой файл подкачки имел суффикс .html, а не .php. Исправление, которое позволило моему сценарию работать на меня. Это, вероятно, не ваша проблема, но я подумал, что упомяну об этом на всякий случай.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...