Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Какая переменная $_SERVER предоставляет полный URL-адрес

Автор вопроса: user4951Ответов: 4

Возможный дубликат:
получение текущего URL-адреса
PHP и вызывающий URL-адрес?

Скажи, что кто-то ищет

http://subdomain.domainname.com/somedirectory/somefile.htm

Какая переменная $_SERVER содержит http://subdomain.domainname.com/somedirectory/somefile.htm а>

  • var_dump( $_SERVER); и найдите его или комбинацию записей. nickb 05.12.2011

phpglobal-variables

Ответы

Ответ 1 · рейтинг 18 · DaveRandom

// Get HTTP/HTTPS (the possible values for this vary from server to server)
$myUrl = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && !in_array(strtolower($_SERVER['HTTPS']),array('off','no'))) ? 'https' : 'http';
// Get domain portion
$myUrl .= '://'.$_SERVER['HTTP_HOST'];
// Get path to script
$myUrl .= $_SERVER['REQUEST_URI'];
// Add path info, if any
if (!empty($_SERVER['PATH_INFO'])) $myUrl .= $_SERVER['PATH_INFO'];
// Add query string, if any (some servers include a ?, some don't)
if (!empty($_SERVER['QUERY_STRING'])) $myUrl .= '?'.ltrim($_SERVER['REQUEST_URI'],'?');

echo $myUrl;

... это моя самая устойчивая рутина для этого.

Ответ 2 · рейтинг 6 · Ian Jamieson

Вы можете попробовать:

echo '<pre>';
print_r($_SERVER);
echo '</pre>';

Комбинация $_SERVER['HTTP_HOST'] и $_SERVER['SCRIPT_NAME'] или $_SERVER['PHP_SELF'] должна быть тем, что вам нужно.

Ответ 3 · рейтинг 5 · Tak

Вам нужно построить его самостоятельно;

echo $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

Вы также можете использовать $_SERVER['HTTPS'] для определения HTTP или HTTPS.

Я рекомендую использовать $_SERVER['REQUEST_URI'], так как это именно то, что ищет пользователь, до каких-либо перезаписей или чего-либо еще, и включает переменные GET.

Ответ 4 · рейтинг 1 · virushuo

В $_SERVER нет полного URL-адреса. Но вы можете использовать этот код:

$url = "http://" . $_SERVER['HTTP_HOST'] . "/" . $_SERVER['PHP_SELF'] . "/" . $_SERVER['QUERYSTRING'] . "/";

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы