Проверьте в PHP, включен ли PATH_INFO на вашем сервере? - PullRequest
2 голосов
/ 03 января 2012

Начиная с PHP, существует ли кроссплатформенный, кросс-серверный способ определения, включен ли PATH_INFO на сервере, на котором вы работаете?

Похоже, что $ _SERVER ['PATH_INFO'] заполняется только в том случае, если после сценария имеются дополнительные сегменты пути, поэтому вы не можете с уверенностью сказать, включен ли PATH_INFO, например, для запроса /index.php.

Ответы [ 2 ]

2 голосов
/ 03 января 2012

Я не думаю, что есть определенный способ получить такое значение конфигурации Apache.

Одна идея, которая приходит в голову, это сделать запрос, используя file_get_contents() до

http://current_site_domain/check.php/test

check.php выдаст $_SERVER['PATH_INFO'].

Если результатом запроса является «test», PATH_INFO работает.

Конечно, это может не сработать, потому что открытие URL отключено, потому что вы не знаете локальный домен, потому что есть брандмауэр и т. Д. И т. Д.

Другой способ, который менее подвержен ошибкам, - это использование iframe:

<iframe src="/check.php/It%20works!"></iframe>

Если вы видите «это работает» внутри ifrane, PATH_INFO работает. Возможно, полезно для процедуры установки.

0 голосов
/ 03 января 2012

$ _ SERVER ["PATH_INFO"] всегда должен быть доступен.Если это не так, это просто означает, что между именем файла и строкой запроса не было никакой дополнительной информации.

...