Текущий URI обычно может состоять из $_SERVER['HTTPS']
, $_SERVER.['HTTP_HOST']
и $_SERVER['REQUEST_URI']
(кроме хеш-идентификатора #foo
, который даже не отправляется на сервер).
Вы можете найтидальнейшая ссылка здесь , но обычно проще print_r () $_SERVER
массив.
Уточнение: файл может иметь один URL,много или ни одного вообще.
Редактировать: Если у нас есть этот макет файла:
... где /home/foo/htdocs
- корневой каталог документа, способ получения URL-адреса каталогагде utils.php
лежит, чтобы прочитать __FILE__
из utils.php
и заменить ведущий $_SERVER['DOCUMENT_ROOT']
протоколом и путем к сайту.Например:
<?php
if( isset($_SERVER['DOCUMENT_ROOT']) ){
$directory = realpath(dirname(__FILE__));
$document_root = realpath($_SERVER['DOCUMENT_ROOT']);
$base_url = ( isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on' ? 'https' : 'http' ) . '://' .
$_SERVER['HTTP_HOST'];
if( strpos($directory, $document_root)===0 ){
echo $base_url . str_replace(DIRECTORY_SEPARATOR, '/', substr($directory, strlen($document_root)));
}
}
Этот код может нуждаться в некоторой настройке (не все веб-серверы создают одинаковые переменные), и, конечно, нет никакой гарантии, что URL-адрес каталога будет доступным или полезным.