|
|
|
| Смешно даже, когда писал на хтмл всегда пользовался относительными ссылками.
Но при использовании пхп это ни всегда приемлемо. Т.к. файлы подключаются инклудом к разным файлам в разных категориях.
Прочитал в книге по хтмл что существуют корнезависимые ссылки типа
<a href=/dir/dir/dir/index.php>dir</a>
|
Попробовал у себя не пашет.
Пользуюсь пока так:
<?php
$root = $_SERVER['DOCUMENT_ROOT'];
$host = $_SERVER['HTTP_HOST'];
echo "<a href=$host/dir/dir/dir/index.php>Dir</a>";
echo "<img src=$root/dir/dir/dir/dot.gif>";
?>
|
Думаю, это малоэффективно.
Как сделать лучше? | |
|
|
|
|
|
|
|
для: alek_chita
(28.02.2007 в 14:33)
| | А если так
echo "<a href='./dir/dir/dir/index.php'>Dir</a>";
echo "<img src='./dir/dir/dir/dot.gif'>";
|
| |
|
|
|
|
|
|
|
для: dert
(28.02.2007 в 14:44)
| | Мне нужно чтоб точкой с которой идет отсчет была document root.
ваш вариант пробовал не вышло. Поднимается на каталог выше. | |
|
|
|
|
|
|
|
для: alek_chita
(28.02.2007 в 14:53)
| |
echo "<a href='dir/dir/dir/index.php'>Dir</a>";
echo "<img src='dir/dir/dir/dot.gif'>";
|
| |
|
|
|
|
|
|
|
для: dert
(28.02.2007 в 14:55)
| | Попробовал свой первый вариант все заработало. Это я сам намудрил. Простите, что занял ваше время.
Правельный ответ:
<img src='/dir/dir/dir/dot.gif'>
|
Но опять же в следующем коде происходит ошибка.
<?php
require ("/dir/dir/inc.inc");
?>
|
no such directory | |
|
|
|
|
|
|
|
для: alek_chita
(28.02.2007 в 15:24)
| | Честно говоря,не пойму,зачем нужен DOCUMENT_ROOT.К примеру,мне нужен скрипт www.xxx.in.ua/superadmin/admin/hello.php.При вызовах include,fopen,mkdir,тогда да,я всегда пишу $_SERVER['DOCUMENT_ROOT'].'/superadmin/admin/hello.php (получается вроде /home/users/блаблабла/www.xxx.in.ua/superadmin/admin/hello.php).а ссылки и прочие адреса,передаваемые из браузерa (Сейчас придут умные люди и начнут ругаться) я всегда адресую от корня сайта для браузера -'/superadmin/admin/hello.php' | |
|
|
|
|
|
|
|
для: Ralph
(28.02.2007 в 20:36)
| | Блин,намудрил...Короче,если адрес мне нужен для php-функций,пишу $_SERVER['DOCUMENT_ROOT'].'/путь от имени сервера',если для html-кода-просто '/путь от имени сервера' | |
|
|
|
|
|
|
|
для: Ralph
(28.02.2007 в 20:43)
| | Путь от имени сервера начинается с двух косых. А у Вас - путь от корня.
Между прочим, в некоторых случаях это действительно важно. Например, в header("Location: ..."); | |
|
|
|
|
|
|
|
для: Trianon
(01.03.2007 в 09:53)
| | Странно,сколько уже так использую,причем в основном в header'ах-и ни одного сбоя не было.Честно говоря,кроме как при указании протокола,я нигде не видел два слэша подряд | |
|
|
|
|
|
|
|
для: Ralph
(01.03.2007 в 10:29)
| | протокол (точнее - схема доступа) указывается двоеточием.
На примере этого форума.
index.php - файл в текущем каталоге
/forum/index.php - тот же файл от корня текущего сайта
//www.softtime.ru/forum/index.php - тот же файл c явным указанием имени сервера.
http://www.softtime.ru/forum/index.php - тот же файл, полный URI
Всё это корректные ссылки на один и тот же файл.
Редиректы по абсолютной и относительной ссылке отличаются тем, что во втором случае браузеру не передается информация о том, что URL поменялся. | |
|
|
|
|
|
|
|
для: Ralph
(28.02.2007 в 20:43)
| | Я также пользуюсь $_SERVER['DOCUMENT_ROOT'], но помоему это называется несоблюдением стилевых правил оформления кода. Хотя и не уверен на сто процентов. Вот это и хочу выяснить у профессионалов. Использование $_SERVER['DOCUMENT_ROOT'] и $_SERVER['HTTP_HOST'] в ссылках на файлы и картинки является ошибкой или нет? | |
|
|
|
|
|
|
|
для: alek_chita
(01.03.2007 в 13:52)
| | пардон, а в чем здесь нарушение стиля оформления? | |
|
|
|
|
|
|
|
для: Trianon
(01.03.2007 в 14:12)
| | Хотя бы потому что в хтмл много вставок
<?php echo $_SERVER['DOCUMENT_ROOT';]?>
|
И т.п. Ведь echo работает медленнее, чем простой хтмл. Я не могу оценить на сколько, поэтому и спрашиваю. Вполне возможно что проблема надумана мною. Если так то прошу прощения. Все равно напишите комментарий пожалуйста. | |
|
|
|
|
|
|
|
для: alek_chita
(01.03.2007 в 14:32)
| | Писать ссылки на $_SERVER['DOCUMENT_ROOT';] в голом html вредно. Они имеют смысл лишь в php. В голом html ссылки на собственный сайт должны быть относительными. И это действительно нарушение стиля. | |
|
|
|
|
|
|
|
для: Trianon
(01.03.2007 в 14:58)
| | Представте ситуацию:
1. в корне сайта есть директории
dir_1
dir_2
dir_3
....
dir_n
В корне несколько файлов хтмл+пхп. В папке dir_m лежат, кроме всего прочего, два файла top.php и foot.php. В них должны быть ссылки (картинки страницы) находящиеся в папках dir и корне сайта. Foot и top прикрепляются к некоторым файлам в папках dir и корне сайта инклудом. Понятно что использовать в этом случае относительные ссылки не приемлемо. нужны именно корнезависимые. Как их правильно писать? Не от корня диска, а от корня сайта. Как простой хтмл может определить корень сайта который может быть в любой (теоретически) поддиректории диска? | |
|
|
|
|
|
|
|
для: alek_chita
(01.03.2007 в 17:10)
| | картинкам нечего делать в каталоге со скриптами.
В некоторых случаях им даже нечего делать на одном сервере с ними.
Примером может быть img.mail.ru
Я говорил о голом html. В нем, ясен пень, инклудов быть вообще не может. Это же не php. | |
|
|
|
|
|
|
|
для: Trianon
(01.03.2007 в 17:57)
| | Не сомневайтесь у меня они именно в отдельных папках.
Давайте я попытаюсь перефразировать вопрос:
<?php
include("путь-от корня-сайта/file.php");
?>
<a href="путь-от корня-сайта/file.php">Ссылка</a>
|
На что нужно заменить путь-от корня-сайта/?
Конечно же если это возможно. | |
|
|
|
|
|
|
|
для: alek_chita
(01.03.2007 в 18:48)
| | Разве то,что я предлагал,у Вас не работает ?
Для файла http://www.mysite.ua/dir/file.php
в html-тэгах и для функции header('Location...')-использовать /dir/file.php
в php-функциях - использовать $_SERVER['DOCUMENT_ROOT']./dir/file.php
По крайней мере,я так всегда пишу,и никаких проблем у меня не возникает... | |
|
|
|
|
|
|
|
для: Ralph
(01.03.2007 в 22:11)
| | В html вроде разобрался.
В ПХП как вы указываете работает, я сам так и делал, но все равно сомневаюсь правильно ли это.
P.S Нашел как решается эта проблема. Нужно в нутри контейнера <head> поместить тег <base htef='URL корня сайта'>. теперь все ссылки в документе будут отсчитываться от корня сайта.
Источник PHP5 на примерах стр. 453 | |
|
|
|
|
|
|
|
для: alek_chita
(01.03.2007 в 14:32)
| | Насколько меня научили правильно,то лучше написать скрипт в виде одной конструкции <?....?>,а весь html-код вписывать внутри нее в операторах echo,так как постоянный <? ?> вход-выход в/из режима php-интерпретатора как раз и забирает больше времени и ресурсов | |
|
|
|