Как установить переменные $ _GET и $ _POST в php через python?

Я работаю на простом веб-сервере 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’). Вот мои вопросы:

  • В чем моя ошибка в приведенном коде?
  • Как я могу вставить эти две глобальные переменные ($ _GET и $ _POST) в сценарии PHP на python?

Моя версия Python 3.4.3, и я использую Ubuntu 14.04

3

Решение

Попробуй это:

$ php -f index.php foo=bar

И в индексе php делай:

parse_str(implode('&', array_slice($argv, 1)), $_GET);

После этого вы получите такой результат:

echo $_GET['foo'];// prints 'bar'

Читайте больше в примере в конце страница

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]