Отправляет email-рассылки с помощью сервиса Sendsay

Как сделать популярный сайт.

  Все выпуски  

Как сделать популярный сайт. - Пути к файлам - Выпуск 208.


Добрый день,
уважаемые читатели рассылки
"Как сделать популярный сайт"
Выпуск 208.
~~~~~ "Пути к файлам" ~~~~~
Внимание! Если ваша почтовая программа не отображает корректно рисунки или тексты, то
Нажмите здесь :: http://kocby.ru/post/webmaster/text/issue208.html

"Пути к файлам"

Если Вы не популярны,
Значит, Вас как бы и не существует...



Как сделать популярный сайт. Выпуск 208. "Пути к файлам". Не знаю, как вы, но я, уже даже имея богатый опыт программирования для интернет-проектов, постоянно путался в этих самых путях к файлам. Вроде бы, и теорию выучил на "отлично". Я даже понял, чем путь абсолютный отличается от пути относительного. "Чего же боле?" - как сказал бы Пушкин. Но все равно, я постоянно путался в этих путях. Путался до тех пор, пока меня не осенила простая и гениальная мысль, после обдумывания которой все стало на свои места и путаница прекратилась. Этой мыслью я и делюсь с вами в данном выпуске.
© Перепечатка разрешается с установкой ссылки на ресурс http://kocby.ru/.



Уважаемые коллеги!

В нашем последнем выпуске...

"Как создать свой поисковик" ::
http://kocby.ru/post/webmaster/text/issue207.html

Мы поговорили о том, как создать свой маленький личный, но реально работающий поисковик.

Тема эта мне представляется очень интересной и перспективной, а надежда побить конкурентов в виде Гугля и Яндекса окрыляет и вдохновляет.

Поэтому, эту тему я в будущем буду развивать, но пока спустимся на землю и займемся совсем простыми и банальными вещами.

Сегодня наша тема - пути к файлам.

Пути - теория вопроса.

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

Вроде бы, и теорию выучил, я даже понял, что:
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.

Относительные пути со смещением

Примеры:
files/file1.txt
/../file1.txt
/../../file1.txt

Использовать подобные пути - лучший способ испортить проект. Знать их надо только для того, чтобы разобраться в чужих проектах, когда возникает такая потребность. Но самому лучше их не использовать. Представьте, что, например, кусок кода следует перенести в другую программу. Сразу возникают проблемы отслеживания путей, что не очень приятно.

Лучше всего использовать в работе варианты 1 и 4. Это даст и надежность кода, и гибкость. Проект легко можно будет перенести на другой сайт или на другой сервер без особых проблем.

Вот и все, что хотелось рассказать о путях-дорогах. Вспоминается классическое: "Дело не в путях, которые мы выбираем. А в том, что в нас заставляет выбрать тот или иной путь."

Теперь полученные нами знания закрепим на практике.

Для этого скачайте дистрибутив → path1.zip

В состав дистрибутива входят файлы:
index.php - файл для запуска вьювера.
/files/file1.txt - простой текстовый файл для просмотра.

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

PS. Маленькое объявление. Если у вас есть интересный проект (или идея проекта), вы разбираетесь в предметной области и нуждаетесь в помощи программера HTML+CSS+JS(jQuery)+PHP+MySQL - то обращайтесь. Вместе сделаем что-нибудь мощное и правильное. Контакты ниже. Отвечу обязательно.


Спасибо за внимание.

~~~~~ Обратная связь ~~~~~

У вас есть два способа реагирования на данный выпуск.

На форуме...

"Как сделать популярный сайт" на форуме :: http://kocby.ru/b/viewforum.php?f=5

Написать лично мне.

Данные для связи на контактной страничке :: http://kocby.ru/contact.html

Ниже дан мой работающий емейл, но доставка через форму на указанном урле надежнее, ее вероятность является почти 100%.
::::::::::::::::::::::::
::: Vladimir Abramov :::
::: va@sumat.ru ::::::::
::: http://sumat.ru/ :::
::::::::::::::::::::::::

### Конец выпуска.

В избранное