Для меня всегда было загадкой - полный адрес , как в адресной сроке браузера

StalkerClasses

Новичок
До сих пор не пойму - почему в PHP есть массив _SERVER - в нем есть все, но нет полного Url-как в адресной строке браузера.

И приходится писать вот такую "юю" каждый раз.

Код:
function getCurrentURL()
{
    $currentURL = (@$_SERVER["HTTPS"] == "on") ? "https://" : "http://";
    $currentURL .= $_SERVER["SERVER_NAME"];
    if($_SERVER["SERVER_PORT"] != "80" && $_SERVER["SERVER_PORT"] != "443")
    {
        $currentURL .= ":".$_SERVER["SERVER_PORT"];
    }
        $currentURL .= $_SERVER["REQUEST_URI"];
    return $currentURL;
}
 

С.

Продвинутый новичок
Зачем же "каждый раз"? Это ведь функция, один раз достаточно.
А еще за много лет работы мне такое не понадобилось ни разу. А тебе зачем?
 

С.

Продвинутый новичок
Во-первых, так и да, фреймворки их в кочерыжку.
А во-вторых, вестимо не нужна для редиректа абсолютная адресация.
 

Фанат

oncle terrible
Команда форума
В массиве _СЕРВЕР лежит то, что приходит из браузера. Ни больше и ни меньше.
 

MiksIr

miksir@home:~$
А ты никогда кроном не пользовался? Или тебе в нем URL полный никогда не был нужен?

Приложение должно знать свой хост.
А ты это к чему и кому вообще?
Но в общем крайне желательно, что бы крон не знал ничего про хост, хотя и не всегда можно. Только все-равно не понял, к чему бы это.
 

Absinthe

жожо
А ты это к чему и кому вообще?
Но в общем крайне желательно, что бы крон не знал ничего про хост, хотя и не всегда можно. Только все-равно не понял, к чему бы это.
wat.jpg

Крон должен знать про хост. Чтобы мог отправить отчет с сылкой, например.
 

MiksIr

miksir@home:~$
Да да да, приложение обязано знать свой хост даже тогда, когда он ему нахрен не сдался. Но раз Absinthe на phpclub сказал надо - значит надо.
Так к чему это было то? Я просто мысль не уловил изначально, вы своим постом что сказать то хотели и кому - мне или топикстартеру?
 

Absinthe

жожо
Вот примерно это в конфиге и должно быть. Как я понимаю, это решит проблему топикстартера.
 

WMix

герр M:)ller
Партнер клуба
Зачем же "каждый раз"? Это ведь функция, один раз достаточно.
чувак, открой для себя PHP 5.3.0
(с) Вурдалак
PHP:
$currentURL = call_user_func(function(){
    $currentURL = (@$_SERVER["HTTPS"] == "on") ? "https://" : "http://";
    $currentURL .= $_SERVER["SERVER_NAME"];
    if($_SERVER["SERVER_PORT"] != "80" && $_SERVER["SERVER_PORT"] != "443")
    {
        $currentURL .= ":".$_SERVER["SERVER_PORT"];
    }
        $currentURL .= $_SERVER["REQUEST_URI"];
    return $currentURL;
});
 

С.

Продвинутый новичок
WMix, надеюсь ты хотя бы получил удовольствие от написания этого глумливого сообщения.
 
Сверху