ОК, я определил константу PHP, которая указывает на файл на сервере, вот так:
define('SOME_FILE', str_replace('//', '/', str_replace('\\', '/', dirname(__FILE__) . '/foo-bar.txt')));
SOME_FILE
будет содержать полный путь + имя файла, которое можно использовать в таких функциях PHP, как include
, fopen
и т. Д. Теперь, если я хочу использовать этот путь в качестве URL-адреса в моем (X) выводе HTML, я Облажался Для этого мне нужно удалить корень документа.
Обычно $_SERVER['DOCUMENT_ROOT']
устанавливается в 99% сред PHP, но это может произойти, если он плохо сконфигурирован, перезаписан пользователем или даже отсутствует.
Теперь я хочу define()
другую PHP-константу, основанную на SOME_FILE
, которая будет указывать на фактический URL-адрес файла (корневой путь документа удаляется).
Я знаю, что могу сделать это в 3-4 строках кода с __FILE__
, $_SERVER['SCRIPT_NAME']
(SCRIPT_NAME требуется согласно спецификации CGI 1.1, но не DOCUMENT_ROOT), strrpos
и substr
, но я ' ищу решение «в одну строку» для использования в операторе define ...
Я использую PHP 5.1.0+. Эми предложения приветствуются!