Как получить полный url php
Перейти к содержимому

Как получить полный url php

  • автор:

Уроки PHP – Как получить URL текущей страницы

Довольно часто вам придется узнавать URL текущей страницы в своем PHP приложении. Например, если вам нужно сделать какое-то конкретное действие в зависимости от фактического URL адреса.

Как получить URL текущей страницы с помощью PHP

В языке программирования PHP есть некоторые встроенные глобальные переменные, которые делают процесс получения текущего URL-адреса довольно простым. Вы можете получить любую информацию о текущем URL с помощью суперглобального массива $_SERVER . С помощью этого массива вы можете получить название доменного имени, название скрипта, параметры URL или их варианты. Теперь давайте посмотрим, как это работает. Для примера давайте возьмем следующую сложную структуру URL адреса:

http://www.sebweo.com/test/some-script.php?city=Kyiv&start=482
  • http – это протокол
  • sebweo.com – это имя хоста (доменное имя).
  • test – это каталог, в котором размещен PHP скрипт
  • some-script.php – это фактическое имя PHP скрипта
  • city=Kyiv – это первый параметр URL (город) и его значение (Kyiv)
  • start=482 – это второй параметр URL (start) и его значение (482)

А теперь давайте попробуем создать тот же URL с помощью PHP.

Протокол URL ссылки может быть получен из переменной $_SERVER[‘SERVER_PROTOCOL’] .

Однако, если вы запустите этот код, вы получите значение не просто http или https, а такую строку: HTTP/1.1

Чтобы получить чистую строку протокола, нам нужно провести определенные манипуляции с этим значением:

На следующем шаге мы выясним имя хоста. Для этого используется значение массива $_SERVER[‘HTTP_HOST’] . Вы можете использовать это так:

  • Получаем каталог и имя текущего PHP скрипта

Значение $_SERVER[‘SCRIPT_NAME’] содержит полный путь с именем фактического PHP сценария. Вы можете это использовать так:

Последняя часть текущего URL-адреса содержится в значении $_SERVER[‘QUERY_STRING’] и вы можете его использовать так:

  • Получаем фактический URI ( /test/some-script.php?city=Kyiv&start=482 )

Если для вас не важны протокол и имя хоста (домен), а только путь, имя скрипта и параметры URL, вы можете просто использовать конструкцию $_SERVER[‘REQUEST_URI’] следующим образом:

Таким образом, чтобы получить полный URL текущей страницы с помощью PHP, это можно сделать так:

ВАЖНО. Записи в суперглобальном массиве $_SERVER создаются веб-сервером. Нет гарантии, что все веб-серверы предоставят любую из этих записей; сервер может опустить некоторые из них или предоставить другие, не указанные здесь. Однако, многие из этих переменных присутствуют в спецификации CGI/1.1, поэтому вы можете ожидать их поддержку сервером.

Как получить полный url php

Здесь могла бы быть ваша реклама

Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel

Помог: 3 раз(а)

Секрет
Теперь, когда вы уже наверняка второпях отправили свой запрос,
я расскажу вам простой секрет, который сэкономит вам уйму ожиданий,
даже если первый ответ по теме последуем сразу же.

Само собой я знаю что ответят мне тут же, и если я посмотрю
на сообщения на форуме, то пойму что в общем то я и не ошибаюсь.
Но еще я точно замечу, что очень мало тем, в которых всего два ответа :
вопрос автора и еще два сообщение вида Ответ + Спасибо

После этого приходится начинать уточнять этим неграмотным что мне надо.
Они что, сами читать не умеют? А уточнять приходится.
И иногда пока они переварят то что я им скажу проходит и не одна ночь..

Уверен что если бы я им сказал что у меня есть
фиолетовый квадрат, и нужно превратить его в синий треугольник
и я пытался взять кисточку, макнуть в банку и поводить ей по квадрату
но почему то кисточка не принимала цвет краски в банке,
то на мой вопрос — где взять правильные банки мне бы ответили гораздо быстрее
предложив её открыть, а не тратить еще стольник на жестянку.

Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
Что есть
Что нужно получить
Как я пытался
Почему или что у меня не получилось.

На последок как оно происходит на форумах

Цитата:

Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
Новичок: Чем мне нравиться этот форум — из двух ответов ниодного конкретного. Одни вопросы неподелу!
Старожил: Не нравится — тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
Новичок: Не знаите — лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ.
Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю. А от вас нормального ответа недождёшся.
Прохожий: Самое крепкое дерево — дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность:
Новичок: Спасибо, братан! То что нужно.

Отредактировано модератором: Uchkuma, 26 Апреля, 2011 — 10:21:12

Получаем текущий URL сайта на PHP

Информацию о текущем адресе страницы можно получить с помощью элементов массива $_SERVER .

Для примера возьмём URL: https://mysite.ru/razdel/stranica.html?param=test .

$url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; echo $url;

Результат: https://mysite.ru/razdel/stranica.html?param=test

Получаем полный URL без GET параметров.

$url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $url = explode('?', $url); $url = $url[0]; echo $url;

Результат: https://mysite.ru/razdel/stranica.html

Получаем путь от корня сайта с GET параметрами.

$url = $_SERVER['REQUEST_URI']; echo $url;

Результат: /razdel/stranica.html?param=test

Получаем только путь от корня сайта без GET параметров.

$url = $_SERVER['REQUEST_URI']; $url = explode('?', $url); $url = $url[0]; echo $url;

Результат: /razdel/stranica.html

Получаем только GET параметры.

Строка с GET параметрами хранится в переменной $_SERVER [ ‘ QUERY_STRING ‘ ] ; А что бы распарсить GET строку параметров в массив нужно воспользоваться функцией parse_str() .

Немного изменим тестовый URL: https://mysite.ru/razdel/stranica.html?first_parameter=code1&second_parameter=code2&third_parameter=code3 .

$param = $_SERVER['QUERY_STRING']; echo $param.'
'; parse_str($param, $get); print_r($get);

get_page_uri() │ WP 1.5.0

Получает путь (URL без домена) до указанной постоянной страницы. Собирает ярлыки текущей и всех родительских страниц и объединяет их слэшем / . Если у страницы есть родительские страницы, то они будут добавлены в путь через слэш / : roditel/page_name .

Когда нужно получить УРЛ постоянной страницы, почти всегда используется функция get_permalink(). Она к тому же работает с кэшем, а значит быстрее.

Работает на основе: get_post()
1 раз — 0.000237 сек (быстро) | 50000 раз — 3.85 сек (быстро)

Хуки из функции

Возвращает

Строку|false . URI страницы, false — в случае ошибки.

Использование

get_page_uri( $page );

$page(WP_Post/объект/число) ID или объект страницы, URI которой нужно получить. С версии 4.6. параметр стал необязательным.
По умолчанию: 0 (текущая запись)

Примеры

#1 Получим путь до текущей страницы

Допустим у нас есть страница 1544 с ярлыком mypage и она является дочерней к parent . Тогда:

echo get_page_uri( 1544 ); // вернет: parent/mypage

Добавить свой пример

Список изменений

С версии 1.5.0 Введена.
С версии 4.6.0 The $page parameter was made optional.

Код get_page_uri() get page uri WP 6.4.3

function get_page_uri( $page = 0 ) < if ( ! $page instanceof WP_Post ) < $page = get_post( $page ); >if ( ! $page ) < return false; >$uri = $page->post_name; foreach ( $page->ancestors as $parent ) < $parent = get_post( $parent ); if ( $parent && $parent->post_name ) < $uri = $parent->post_name . '/' . $uri; > > /** * Filters the URI for a page. * * @since 4.4.0 * * @param string $uri Page URI. * @param WP_Post $page Page object. */ return apply_filters( 'get_page_uri', $uri, $page ); >

Cвязанные функции

Вспомогательные
  • array_key_first()
  • array_key_last()
  • calendar_week_mod()
  • checked()
  • disabled()
  • fetch_feed()
  • wp_die()
  • wp_html_excerpt()
  • WP_List_Util()
  • wp_parse_str()
  • wp_redirect()
  • wp_slash()
  • wp_trim_words()
Страницы
  • get_all_page_ids()
  • get_page_by_path()
  • get_page_children()
  • get_page_link()
  • get_page_template_slug()
  • get_pages()
  • get_post_ancestors()
  • page_template_dropdown()
  • parent_dropdown()
  • wp_dropdown_pages()
  • wp_link_pages()
  • wp_list_pages()
  • wp_page_menu()

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *