Как получить базовый URL с PHP?

Я использую XAMPP на Windows Vista. В моей разработке я имею http://127.0.0.1/test_website/.

Как я добираюсь http://127.0.0.1/test_website/ с PHP?

Я попробовал что-то как они, но ни один из них не работал.

echo dirname(__FILE__)
or
echo basename(__FILE__);
etc.

127
задан Peter Mortensen 3 March 2013 в 02:41
поделиться

2 ответа

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

<?php echo "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; ?>

Узнайте больше о предопределенной переменной $_SERVER

Если вы планируете использовать https, вы можете использовать это:

function url(){
  return sprintf(
    "%s://%s%s",
    isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' ? 'https' : 'http',
    $_SERVER['SERVER_NAME'],
    $_SERVER['REQUEST_URI']
  );
}

echo url();
#=> http://127.0.0.1/foo

Согласно этому ответу, пожалуйста, убедитесь, что вы правильно настроили Apache, чтобы вы могли безопасно зависеть от SERVER_NAME.

<VirtualHost *>
    ServerName example.com
    UseCanonicalName on
</VirtualHost> 

ПРИМЕЧАНИЕ: Если вы зависите от ключа HTTP_HOST (который содержит пользовательский ввод), вам все равно придется произвести некоторую очистку, удалить пробелы, запятые, возврат каретки, все, что не является допустимым символом для домена. Проверьте встроенные функции php parse_url, например.

237
ответ дан 24 November 2019 в 00:43
поделиться

Я думаю, что суперглобальный сервер $ _ SERVER содержит информацию, которую вы ищете. Это может быть что-то вроде этого:

echo $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']

Вы можете увидеть соответствующую документацию PHP здесь .

6
ответ дан 24 November 2019 в 00:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: