Я работаю на простом веб-сервере Python в образовательных целях. Я хочу, чтобы мой сервер мог запускать сценарии PHP по запросам. Я могу выполнить PHP-коды, создав подпроцесс, как в этом ответ и получить его вывод в виде байтов. Это может помочь мне выполнить большинство встроенных функций PHP. Но я также хотел бы смоделировать переменные $ _GET и $ _POST, например, когда пользователь отправляет запрос POST, я бы хотел, чтобы его параметры были доступны в глобальной переменной $ _POST.
Я могу взломать команду, которую я даю подпроцессу, но я слышал, что на реальном веб-сервере, таком как Apache, PHP получает значение этих переменных из переменных среды (я думаю, стандарт Common Gateway Interface).
Тем не менее, когда я устанавливаю переменную среды с именем QUERY_STRING
php не устанавливает значение $ _GET. Позвольте мне показать большую картину:
index.php
<?php var_dump($_GET); ?>
мои команды в оболочке:
export QUERY_STRING="foo=bar"php index.php
Эта команда snipped не дает мне желаемого результата (Array => [‘foo’] = ‘bar’). Вот мои вопросы:
Моя версия Python 3.4.3, и я использую Ubuntu 14.04
Попробуй это:
$ php -f index.php foo=bar
И в индексе php делай:
parse_str(implode('&', array_slice($argv, 1)), $_GET);
После этого вы получите такой результат:
echo $_GET['foo'];// prints 'bar'
Читайте больше в примере в конце страница
Других решений пока нет …