Comments 27
простите, но для чего эта статья?
если для того, чтобы показать, как работать с файлами — это какой-то слишком низкий уровень для хабра
если для разбора практического примера — ваш пример откровенно плох, я настоятельно рекомендую никому не реализовывать новостную ленту через файлы, если только (сюда подставить целый список условий типо «лень», «надо сделать для себя за 2 часа», «будет запущено на моей машине» и т.п.). я понимаю, что каждый волен делать так, как считает нужным, но не надо учить начинающий разработчиков плохому :)
если для того, чтобы показать, как работать с файлами — это какой-то слишком низкий уровень для хабра
если для разбора практического примера — ваш пример откровенно плох, я настоятельно рекомендую никому не реализовывать новостную ленту через файлы, если только (сюда подставить целый список условий типо «лень», «надо сделать для себя за 2 часа», «будет запущено на моей машине» и т.п.). я понимаю, что каждый волен делать так, как считает нужным, но не надо учить начинающий разработчиков плохому :)
Задача написать максимально простой и понятный код.
Когда стоит такая задача, не стоит использовать переменные с именами $files1, $a.
$files1=array_reverse($files1);
scandir() позволяет задать сортировку вторым параметром и избавиться от этой строки.
scandif($dir, 1)
для PHP версии < 5.4 и
scandif($dir, SCANDIR_SORT_DESCENDING)
для 5.4 и выше.
И вообще, вместо scandir можно использовать glob("*.txt") и тогда не понадобится $p == $all-2 и preg_match('/\d+\.txt/', $val), правда array_reverse придется оставить
Параолимпийские игры по программированию.
Классический способ
1. Открыть браузер.
2. Набрать адрес или нажать на вкладку.
3. Опционально. набрать пароль или нажать подтвердить.
4. Набрать текст.
6. Нажать отправить.
Получаем 5-6 операций. Затраты времени на открытие браузера.
Способ с файлами
1. Открыть блокнот.
2. Набрать текст
3. Сохранить сразу в папку на сервере.
Для «сохранения сразу на сервере» не надо ли набрать адрес этого сервера и пароль?
Всплакнул, спасибо :')
Ох уж эти веб-технологии 90-х.
Ох уж эти веб-технологии 90-х.
Что это делает на главной?
Неудобно получилось, только я отправил просьбу по почте, чтобы повременить с публикацией, она состоялась, а я начал ее редактировать :)
Вчера, после отправки этой заметки через 10 минут пришла мысль в голову, что я поторопился, видимо, пересидел.
Но я решил все же лечь спать и переделать все утром, а потом написать модераторам.
Переписал, у брал scandir, хотел сначала glob использовать, потом решил подумать, как вообще выкинуть массивы и циклы.
Вчера, после отправки этой заметки через 10 минут пришла мысль в голову, что я поторопился, видимо, пересидел.
Но я решил все же лечь спать и переделать все утром, а потом написать модераторам.
Переписал, у брал scandir, хотел сначала glob использовать, потом решил подумать, как вообще выкинуть массивы и циклы.
снимай статью. с ней ты каждые 10 минут минусы получать будешь…
ЗЫ: уж тогда бы писал в xml и то прок был бы… чуть-чуть
ЗЫ: уж тогда бы писал в xml и то прок был бы… чуть-чуть
Файлы можно хранить не в .txt а .html, что позволить прописывать для каждого файла, например, свои мета-теги.
Несложно будет добавить эту опцию в панель администратора.
Если вы не хотите использовать все плюшки PDO или MySQLi, SQLite, Firebird, MongoDB… А хотите хранить все данные в файлах, смотрите в сторону json_encode(), json_decode(). Так вы можете хранить данные, хотя бы, в массивах. Если вы хотите сэкономить место на HDD, пакуйте данные gzencode()/gzdecode()… И вам нужно, хотя бы, написать самый тривиальный шаблонизатор на основе str_replace()…
ЗЫ
Я не буду говорить на сколько ваш код ужасен и не применим в «нормальной» системе, думаю вы и так уже это знаете.
Как написал barker, спасибо, что напомнили о веб-сайтах 90х…
Вы правы, но я все же попробую объяснить. Есть очень много людей, которые заняты в разработке сайтов — в разной степени, разной сложности. Не спорю, есть уже некие стандарты и профессиональные отточеные решения, в случае с php — их масса.
Я сам новичок и очень медленно по мере сил вникаю в php, но наблюдаю за форумами и вопросами — они одни и те же.
«Как сделать пагинатор? Как сделать листалку? Как вывести новости на сайт с mysql? Как вывести на файлах? „
Фактически — это топ вопросов. На подобные вопросы часто появляется профессиональный ответ и профессиональный код, но в этом отчасти и кроется проблема. Многие, кто работает с готовыми решениями, часто не могут разобраться в профессиональном коде.
Я честно говоря, сам долго не понимал, с какой вообще стороны подступиться к программированию. Просто читать учебники? Хорошо, но если нет мотива сделать что-то конкретное, прочитанное так и останется в глубинах памяти. Вдобавок в учебниках много теории. А задача, субъективно на пером этапе изучения простая — понять хотя бы механизм, принцип. Я вижу пока только один вариант. 1. иметь мотив сделать что-то конкретное — пусть — это велосипед. 2. найти максимально простой пример, самый простой код, желательно, условно говоря, с псевдокодом на русском языке.
Часто наблюдая за развитием тем на форумах, видел, что многих отпугивает объем кода в профессиональных решениях. А как объяснить механизм? Опять же, субъективно, только самым простейшим решением. И такое решение, в случае со стандартными вопросами php — однозначно может вызвать негодование или усмешку профессионала. Но не реальное, практическое использование примера является задачей — “это лишь начало попытки реализовать идею новостей на файлах».
REZ1DENT3, спасибо за советы по json_encode(), json_decode(). Пока для реальных задач хватает Mysql.
Я сам новичок и очень медленно по мере сил вникаю в php, но наблюдаю за форумами и вопросами — они одни и те же.
«Как сделать пагинатор? Как сделать листалку? Как вывести новости на сайт с mysql? Как вывести на файлах? „
Фактически — это топ вопросов. На подобные вопросы часто появляется профессиональный ответ и профессиональный код, но в этом отчасти и кроется проблема. Многие, кто работает с готовыми решениями, часто не могут разобраться в профессиональном коде.
Я честно говоря, сам долго не понимал, с какой вообще стороны подступиться к программированию. Просто читать учебники? Хорошо, но если нет мотива сделать что-то конкретное, прочитанное так и останется в глубинах памяти. Вдобавок в учебниках много теории. А задача, субъективно на пером этапе изучения простая — понять хотя бы механизм, принцип. Я вижу пока только один вариант. 1. иметь мотив сделать что-то конкретное — пусть — это велосипед. 2. найти максимально простой пример, самый простой код, желательно, условно говоря, с псевдокодом на русском языке.
Часто наблюдая за развитием тем на форумах, видел, что многих отпугивает объем кода в профессиональных решениях. А как объяснить механизм? Опять же, субъективно, только самым простейшим решением. И такое решение, в случае со стандартными вопросами php — однозначно может вызвать негодование или усмешку профессионала. Но не реальное, практическое использование примера является задачей — “это лишь начало попытки реализовать идею новостей на файлах».
REZ1DENT3, спасибо за советы по json_encode(), json_decode(). Пока для реальных задач хватает Mysql.
Ладно, вдруг все же кому-то пригодится и у кого-то появится идея сделать что-то существенное, но простенькое.
Для тестирования чуток допиленное в архив:
https://yadi.sk/d/a1An-QyHg4prH
Для тестирования чуток допиленное в архив:
https://yadi.sk/d/a1An-QyHg4prH
Я просто оставлю это здесь:
blog.getpelican.com
blog.getpelican.com
lolipop, спасибо…
BupycNet, это интересная идея, но механизм получается довольно сложным. Но, думаю, что-то подобное уже реализовано. Кстати, как и подгрузка оформления из БД и даже самих скриптов с помощью eval.
Но интересно было сделать что-то совсем микро, и обязательно без бд. Я еще буду экспериментировать с этим.
Тут немного истории, я начал писать микро-движок с mysql для мобильного (Android) веб-сервера — Palapa web server (PHP+MYSQL+MSMTP) — сервер можно бесплатно скачать на Google Play Market. Вот тут-то и всплыли идеи из прошлого, на тему микродвижков.
Если интересно можете ознакомиться с моей же темой на http://4pda.ru/forum/index.php?showtopic=583136
Но интересно было сделать что-то совсем микро, и обязательно без бд. Я еще буду экспериментировать с этим.
Тут немного истории, я начал писать микро-движок с mysql для мобильного (Android) веб-сервера — Palapa web server (PHP+MYSQL+MSMTP) — сервер можно бесплатно скачать на Google Play Market. Вот тут-то и всплыли идеи из прошлого, на тему микродвижков.
Если интересно можете ознакомиться с моей же темой на http://4pda.ru/forum/index.php?showtopic=583136
И зачем люди годами вырабатывают лучшие практики? Не, мы сами с усами.
Ну уж если так хотелось не использовать массивы и scandir, почему было бы не использовать RecursiveDirectoryIterator?
Sign up to leave a comment.
PHP и файлы. Новости без MySQL с перелистыванием