Как сделать популярный сайт. - Пути к файлам - Выпуск 208.
Добрый день,
уважаемые читатели рассылки
"Как сделать популярный сайт" Выпуск 208.
~~~~~ "Пути к файлам" ~~~~~
Внимание! Если ваша почтовая программа не отображает корректно рисунки или тексты, то Нажмите здесь ::
http://kocby.ru/post/webmaster/text/issue208.html
"Пути к файлам"
Если Вы не популярны,
Значит, Вас как бы и не существует...
Как сделать популярный сайт. Выпуск 208. "Пути к файлам". Не знаю, как вы, но я, уже даже имея богатый опыт программирования для интернет-проектов, постоянно путался в этих самых путях к файлам. Вроде бы, и теорию выучил на "отлично". Я даже понял, чем путь абсолютный отличается от пути относительного. "Чего же боле?" - как сказал бы Пушкин. Но все равно, я постоянно путался в этих путях. Путался до тех пор, пока меня не осенила простая и гениальная мысль, после обдумывания
которой все стало на свои места и путаница прекратилась. Этой мыслью я и делюсь с вами в данном выпуске.
Мы поговорили о том, как создать свой маленький личный, но реально работающий поисковик.
Тема эта мне представляется очень интересной и перспективной, а надежда побить конкурентов в виде Гугля и Яндекса окрыляет и вдохновляет.
Поэтому, эту тему я в будущем буду развивать, но пока спустимся на землю и займемся совсем простыми и банальными вещами.
Сегодня наша тема - пути к файлам.
Пути - теория вопроса.
Не знаю, как вы, но я, уже даже имея богатый опыт программирования для интернет-проектов, постоянно путался в этих самых путях к файлам.
Вроде бы, и теорию выучил, я даже понял, что:
http://kocby.ru/post/webmaster/path1/files/ - это путь абсолютный;
/post/webmaster/path1/files/ - это путь относительный;
...но, все равно, бывало, путался в этих самых путях-дорогах.
Путался до тех пор, пока меня не осенила простая и гениальная мысль, после обдумывания которой все стало на свои места и путаница прекратилась.
Вот эта мысль, ловите:
HTML, CSS и JS (имеется ввиду браузерный клиентский JavaScript) работают через браузер и все пути в их представлении это есть браузерные пути. О сервере эти технологии ничего не знают. Также они не понимают, что на самом деле, путей, по которым они работают, вообще не существует. Это чистая абстракция со стороны Апача и прочего юниксодного софта.
А вот PHP и прочие серверные языки - это совсем другое дело. Они видят сервер в том виде в каком он есть на самом деле, понимают настоящие, реальные директории на сервере.
На этом теорию заканчиваем, переходим к практике.
Практические упражнения.
Пусть у нас есть простейший текстовый файл, который находится здесь:
http://kocby.ru/post/webmaster/path1/files/file1.txt
Эту строку можно вбить в адресную строку любого браузера, и он должен отобразить контент файла file1.txt.
Теперь, давайте, запустим вьювер для этого сайта, который даст нам возможность просмотреть этот файл с представлением путей к нему 5-тью разными способами: http://kocby.ru/post/webmaster/path1/
Если мы задаем относительный путь как просто:
/post/webmaster/path1/files/file1.txt
То для HTML это срабатывает ок (см версия 1 на примере), но для PHP такой путь не работает (см версия 3).
PHP считает относительность не так, как HTML. PHP считает корневой настоящую корневую папку сервера, и берет отчет от нее.
Для PHP правильно указывать путь к файлу так:
$_SERVER['DOCUMENT_ROOT'] . "/post/webmaster/path1/files/file1.txt"
(см версия 4).
А почему тогда, если указывать абсолютные пути, то HTML (см версия 2) и PHP (см версия 5) работают одинаково и оба корректно? Потому, что там явно указан протокол http и PHP понимает всю эту абстракцию с путями, как и HTML.
Использовать подобные пути - лучший способ испортить проект. Знать их надо только для того, чтобы разобраться в чужих проектах, когда возникает такая потребность. Но самому лучше их не использовать. Представьте, что, например, кусок кода следует перенести в другую программу. Сразу возникают проблемы отслеживания путей, что не очень приятно.
Лучше всего использовать в работе варианты 1 и 4. Это даст и надежность кода, и гибкость. Проект легко можно будет перенести на другой сайт или на другой сервер без особых проблем.
Вот и все, что хотелось рассказать о путях-дорогах. Вспоминается классическое: "Дело не в путях, которые мы выбираем. А в том, что в нас заставляет выбрать тот или иной путь."
Теперь полученные нами знания закрепим на практике.
В состав дистрибутива входят файлы:
index.php - файл для запуска вьювера.
/files/file1.txt - простой текстовый файл для просмотра.
Потренируйтесь с этой софтинкой на своем хостинге, попробуйте поиграться с относительными путями со смещением.
PS. Маленькое объявление. Если у вас есть интересный проект (или идея проекта), вы разбираетесь в предметной области и нуждаетесь в помощи программера HTML+CSS+JS(jQuery)+PHP+MySQL - то обращайтесь. Вместе сделаем что-нибудь мощное и правильное. Контакты ниже. Отвечу обязательно.
Спасибо за внимание.
~~~~~ Обратная связь ~~~~~
У вас есть два способа реагирования на данный выпуск.