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

В PHP, как я могу получить URL-адрес текущей страницы? Предпочтительно только части после http://domain.com.

Ответ 1

$_SERVER['REQUEST_URI']

Подробнее о том, какая информация доступна в массиве $_SERVER, см. справочную страницу PHP для нее.

Если вам нужна строка запроса (бит после ? в URL-адресе), эта часть находится в этой переменной:

$_SERVER['QUERY_STRING']

Ответ 2

если вы хотите только части URL-адреса после http://domain.com, попробуйте следующее:

<?php echo $_SERVER['REQUEST_URI']; ?>

если текущий url был http://domain.com/some-slug/some-id, echo вернет только '/some-slug/some-id'.

если вы хотите получить полный URL-адрес, попробуйте следующее:

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

Ответ 3

 $uri = $_SERVER['REQUEST_URI'];

Это даст вам запрошенную директорию и имя файла. Если вы используете mod_rewrite, это чрезвычайно полезно, потому что оно сообщает вам, на какой странице пользователь смотрит.

Если вам нужно имя файла, вы можете попробовать либо $_SERVER['PHP_SELF'], волшебную константу __FILE__, либо $_SERVER['SCRIPT_FILENAME']. Второй 2 дает вам полный путь (от корня сервера), а не только от корня вашего сайта. Они полезны для включений и т.д.

$_SERVER['PHP_SELF'] дает вам имя файла относительно корня веб-сайта.

 $relative_path = $_SERVER['PHP_SELF'];
 $complete_path = __FILE__;
 $complete_path = $_SERVER['SCRIPT_FILENAME'];

Ответ 4

Другие ответы верны. Однако, быстро обратите внимание: если вы хотите захватить материал после ? в URI, вы должны использовать массив $_GET[].

Ответ 5

Вы можете использовать $_SERVER['HTTP_REFERER'], это даст вам полный URL, например:

предположим, что вы хотите получить URL имени сайта www.example.com, тогда $_SERVER['HTTP_REFERER'] выдаст вам https://www.example.com