Отображение ссылки абсолютное местоположение

Есть ли любой способ, которым я могу отобразить местоположение ссылок абсолютно, когда я только ссылаюсь на него относительно.

Т.е. как файл относительно ссылаются...

<a href='../../files/uploaded_file.jpg'>Your Uploaded File</a>

Но я также хотел бы отобразить некоторое текстовое высказывание...

You can link to your file via www.example.com/files/uploaded_file.jpg

Так как выгода, я не хочу к состоянию explicity, каков домен, поскольку сценарий будет использоваться на множестве различных доменов без потребности отредактировать сценарий.

В основном я хочу так или иначе повторить текст, который Вы видите в строке состояния Firefox, когда Вы нависаете над ссылкой.

5
задан Andy Cheeseman 12 July 2010 в 10:25
поделиться

5 ответов

Сделайте:

var_dump($_SERVER);

и вы увидите, на какой из них вы можете рассчитывать как на url домена.

1
ответ дан 15 December 2019 в 06:13
поделиться
<a href="<?php echo 'http://'.$_SERVER['HTTP_HOST'] . '/files/uploaded_file.jpg'; ?>">Your file</a>
1
ответ дан 15 December 2019 в 06:13
поделиться

Предполагается, что страница, содержащая пример кода, находится на расстоянии двух каталогов от корня сайта, например

http://www.example.com/one/two/example-page.php

тогда вы можете сделать это:

<a href='http://<?php echo htmlentities($_SERVER['SERVER_NAME'], ENT_QUOTES)?>/files/uploaded_file.jpg'>Your Uploaded File</a>

Если это предположение неверно и файлы хранятся в каталоге, который по крайней мере на один каталог глубже корня, например.

http: //www.example.com/content/files/uploaded_file.jpg

то вам нужно немного поработать, чтобы получить абсолютный URL.

<?php
$FilesystemPath = str_replace("\\", "/", realpath(dirname(__FILE__) . "/../../files/")) . "/uploaded_file.jpg";
$DocRoot = $_SERVER['DOCUMENT_ROOT'];
$Uri = str_replace($DocRoot, '', $FilesystemPath);
?>
<a href='http://<?php echo htmlentities($_SERVER['SERVER_NAME'] . $Uri, ENT_QUOTES)?>'>Your Uploaded File</a>

В этом примере предполагается, что вы знаете, что каталог файлов находится в каталоге, который находится на два каталога выше каталога страницы.

Во всех этих примерах предполагается взаимно однозначное сопоставление каталогов в файловой системе и при этом не происходит перезаписи URL-адресов. Также я предполагаю, что вы используете простой http, а не https. Если вы хотите представлять ссылки в том же протоколе, что и страница, это отдельный вопрос.

1
ответ дан 15 December 2019 в 06:13
поделиться

это первое, что выплюнул гугл...: http://www.web-max.ca/PHP/misc_24.php

эта еще короче: http://nashruddin.com/PHP_Script_for_Converting_Relative_to_Absolute_URL

0
ответ дан 15 December 2019 в 06:13
поделиться

Если ссылка относительная, вы можете использовать префикс текущего хоста + путь в PHP. Вам придется отформатировать путь, чтобы разрешить относительные части url, например /../, простой цикл сделает следующее.

0
ответ дан 15 December 2019 в 06:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: