Отображение ссылок на абсолютное местоположение - PullRequest
5 голосов
/ 12 июля 2010

Можно ли каким-то образом отобразить местоположение ссылок, если я на него только ссылаюсь относительно.

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

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

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

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

Суть в том, что я не хочу подробно объяснять, что такое домен, так как скрипт будет использоваться на различных доменах без необходимости редактироватьскрипт.

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

Ответы [ 5 ]

1 голос
/ 13 июля 2010

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

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>

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

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

1 голос
/ 13 июля 2010
<a href="<?php echo 'http://'.$_SERVER['HTTP_HOST'] . '/files/uploaded_file.jpg'; ?>">Your file</a>
1 голос
/ 12 июля 2010

Сделайте:

var_dump ($ _ SERVER);

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

0 голосов
/ 12 июля 2010

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

0 голосов
/ 12 июля 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...