REQUEST_URI установлен или не установлен

У меня есть небольшой пример кода для извлечения URI страницы. Эта страница запускается при установке Linux / Apache:

$url = "";
if (!isset($_SERVER['REQUEST_URI'])) {
echo "request_uri is not set";
$url = "value could not be set, !isset on REQUEST_URI was true";
} else {
$url = $_SERVER['REQUEST_URI'];
}
echo "url = $url <br />";

Когда я открываю эту страницу в браузере, кажется, что код достиг условия «else», и я получаю правильный URI.

Тем не менее, когда я запускаю этот код непосредственно из командной строки, используя «php filename.php», появляется код, который выполняет условие if, где REQUEST_URI не установлен. Если я удаляю условие «if», я получаю сообщение об ошибке «Примечание PHP: неопределенный индекс REQUEST_URI in …»

Это сводит меня с ума! Есть ли проблема с REQUEST_URI? Почему он возвращает разные ответы между браузером и командной строкой? Куда я могу обратиться на сервер, чтобы увидеть, действительно ли это значение установлено и может быть возвращено?

Спасибо за любую помощь, которую вы можете предоставить.

1

Решение

Если вы вызываете его из браузера, вы запрашиваете URI, а затем HTTP-сервер выполняет программу PHP и сообщает, что это за URI.

Если вы вызываете его из командной строки, то нет HTTP REQUEST и нет URI (и в этом отношении есть SERVER).

Поведение, которое вы получаете, вполне ожидаемо.

2

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

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

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