2010-01-17 1 views
1

Новый вопрос здесь, есть ли встроенный тег PHP, который можно использовать для извлечения URL-адреса страницы и эхо-сигнала на экране?Как получить URL-адрес страницы с помощью PHP?

Спасибо.

+0

Какие страницы? Текущий (т. Е. Тот, который генерируется самим скриптом PHP)? –

+0

Это очень похоже на: http://stackoverflow.com/questions/2079457/www-to-non-www-redirect-with-php/2079463#2079463. И посмотрите, я использовал ту же функцию, чтобы ответить на него! –

ответ

2

Echos URL-адрес текущей страницы.

$pageURL = (@$_SERVER["HTTPS"] == "on") ? "https://" : "http://"; 
if ($_SERVER["SERVER_PORT"] != "80") 
{ 
    $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; 
} 
else 
{ 
    $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; 
} 
echo $pageURL; 
+0

+1 очень симпатичный. @OP: вы можете видеть все доступные вам переменные сервера (порт, различные URI, заголовки запросов и языки и т. Д.). Используя 'print_r ($ _ SERVER);' и просматривая исходный код вывода. –

+0

На самом деле это код, который Google использует для поиска своего URL-адреса страницы. –

+0

Спасибо Chacha, это работает. Я думал, что может быть встроенный тег, похожий на php_info, поскольку это похоже на очень стандартную задачу, но, по-видимому, нет. – Jackie

0

Посмотрите на переменную $_Server. В частности, вы, вероятно, хотите получить значение REQUEST_URI.

0
$base_url = _SERVER["HTTP_HOST"]; 
$url_path = _SERVER["REQUEST_URI"]; 

echo $base_url.$url_path; 

Предполагая, что запрашиваемая страница была http://sample.org/test.php, вы получите:

sample.org/test.php 

Вы должны добавить еще $ _SERVER переменные, чтобы получить схему (http://). REQUEST_URI также оставляет любые GET переменных нетронутым, поэтому, если запрос страницы http://sample.org/test.php?stuff=junk, вы получите:

sample.org/test.php?stuff=junk 

Если вы хотите, что осталось от, используйте $_SERVER['PHP_SELF'] вместо REQUEST_URI.

Если вы хотите действительно простой способ узнать, какие глобальные переменные доступны, создать страницу со следующим:

<?php 

phpinfo(); 

?> 

и поместить этот скрипт в любом каталоге вы хотите знать. Вы не только увидите всевозможные аккуратные данные, вы также увидите, как различные факторы, такие как HTTP vs HTTPS, mod_rewrite, и даже Apache и IIS могут устанавливать некоторые глобальные переменные по-разному или вообще не работать.

1

Если ваш веб-сервер работает на стандартных портах (80 для HTTP или 443 для HTTPS), это будет работать:

getservbyport($_SERVER['SERVER_PORT'], 'tcp') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] 
Смежные вопросы