Ограничение количества символов строки запроса для сценариев PHP, запускаемых через командную строку? - PullRequest
3 голосов
/ 07 марта 2012

(Backstory: мой PHP-скрипт выполняет другой PHP-скрипт через командную строку (PHP-команда "exec ()")), так что сеанс cURL, создаваемый целевым скриптом, не вызывает зависание оригинального PHP-скрипта.делая это так, чтобы я мог отправлять транзакционную электронную почту без медленной загрузки страницы для моего пользователя, если серверы провайдера электронной почты отстают.)

Я вызываю скрипт PHP, подобный этому:

exec ("[php] [target script] [querystring] "), где [querystring] является типичной строкой запроса HTTP GET (variable = value & variable2 = value2).Причина, по которой я передаю данные электронной почты целевому сценарию через строку запроса, заключается в том, что на моем хосте PHP отключен флаг в PHP.ini, который запрещает сценариям PHP обнаруживать $ argv, с которыми они вызваны через командную строку.(По какой-то причине добавление строки запроса работает.)

Итак, вопрос в том, каково будет ограничение на число символов в этой строке запроса?Будет ли хоть один?В миксе нет HTTP или веб-браузера - будет ли это означать, что ограничения GET для Apache и браузеров не будут ограничением?Естественно, будет ли ограничение командной строки?

Ответы [ 2 ]

0 голосов
/ 05 марта 2013

Обратите внимание, что настройки PHP с установленным патчем suhosin будут иметь ограничение по умолчанию 512 символов для получения параметров. Хотя это плохая практика, большинство браузеров (включая IE) поддерживает URL-адреса длиной до 2000 символов, в то время как Apache имеет значение по умолчанию 8000. Чтобы добавить поддержка длинных параметров с помощью suhosin, добавьте suhosin.get.max_value_length = в php.ini

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

Я не думаю, что есть какие-либо ограничения на количество символов, если это так, это, вероятно, определяется используемой операционной системой или языком, который в этом случае будет переводиться в вашу память.

Я надеюсь, чтоотвечает на ваш вопрос.

...