Как сделать популярный сайт. Выпуск 208.
"Пути к файлам".
"Пути к файлам".
Уважаемые коллеги!
В нашем последнем выпуске...
"Как создать свой поисковик" ::
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 - простой текстовый файл для просмотра.
Потренируйтесь с этой софтинкой на своем хостинге, попробуйте поиграться с относительными путями со смещением.
Спасибо за внимание.
У вас есть два способа реагирования на данный выпуск.
На форуме...
"Как сделать популярный сайт" на форуме :: http://kocby.ru/b/viewforum.php?f=5
Написать лично мне.
Данные для связи на контактной страничке :: http://kocby.ru/contact.html
Ниже дан мой работающий емейл, но доставка через форму на указанном урле надежнее, ее вероятность является почти 100%.
### Конец выпуска.
###
В нашем последнем выпуске...
"Как создать свой поисковик" ::
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/ :::
::::::::::::::::::::::::
::: Vladimir Abramov :::
::: va@sumat.ru ::::::::
::: http://sumat.ru/ :::
::::::::::::::::::::::::
### Конец выпуска.
###