Comments 27
простите, но для чего эта статья?
если для того, чтобы показать, как работать с файлами — это какой-то слишком низкий уровень для хабра
если для разбора практического примера — ваш пример откровенно плох, я настоятельно рекомендую никому не реализовывать новостную ленту через файлы, если только (сюда подставить целый список условий типо «лень», «надо сделать для себя за 2 часа», «будет запущено на моей машине» и т.п.). я понимаю, что каждый волен делать так, как считает нужным, но не надо учить начинающий разработчиков плохому :)
если для того, чтобы показать, как работать с файлами — это какой-то слишком низкий уровень для хабра
если для разбора практического примера — ваш пример откровенно плох, я настоятельно рекомендую никому не реализовывать новостную ленту через файлы, если только (сюда подставить целый список условий типо «лень», «надо сделать для себя за 2 часа», «будет запущено на моей машине» и т.п.). я понимаю, что каждый волен делать так, как считает нужным, но не надо учить начинающий разработчиков плохому :)
+15
Задача написать максимально простой и понятный код.
Когда стоит такая задача, не стоит использовать переменные с именами $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 придется оставить
+6
Параолимпийские игры по программированию.
+21
Классический способ
1. Открыть браузер.
2. Набрать адрес или нажать на вкладку.
3. Опционально. набрать пароль или нажать подтвердить.
4. Набрать текст.
6. Нажать отправить.
Получаем 5-6 операций. Затраты времени на открытие браузера.
Способ с файлами
1. Открыть блокнот.
2. Набрать текст
3. Сохранить сразу в папку на сервере.
Для «сохранения сразу на сервере» не надо ли набрать адрес этого сервера и пароль?
+4
+15
Всплакнул, спасибо :')
Ох уж эти веб-технологии 90-х.
Ох уж эти веб-технологии 90-х.
+15
Что это делает на главной?
+7
Неудобно получилось, только я отправил просьбу по почте, чтобы повременить с публикацией, она состоялась, а я начал ее редактировать :)
Вчера, после отправки этой заметки через 10 минут пришла мысль в голову, что я поторопился, видимо, пересидел.
Но я решил все же лечь спать и переделать все утром, а потом написать модераторам.
Переписал, у брал scandir, хотел сначала glob использовать, потом решил подумать, как вообще выкинуть массивы и циклы.
Вчера, после отправки этой заметки через 10 минут пришла мысль в голову, что я поторопился, видимо, пересидел.
Но я решил все же лечь спать и переделать все утром, а потом написать модераторам.
Переписал, у брал scandir, хотел сначала glob использовать, потом решил подумать, как вообще выкинуть массивы и циклы.
-5
снимай статью. с ней ты каждые 10 минут минусы получать будешь…
ЗЫ: уж тогда бы писал в xml и то прок был бы… чуть-чуть
ЗЫ: уж тогда бы писал в xml и то прок был бы… чуть-чуть
-4
Файлы можно хранить не в .txt а .html, что позволить прописывать для каждого файла, например, свои мета-теги.
Несложно будет добавить эту опцию в панель администратора.
Если вы не хотите использовать все плюшки PDO или MySQLi, SQLite, Firebird, MongoDB… А хотите хранить все данные в файлах, смотрите в сторону json_encode(), json_decode(). Так вы можете хранить данные, хотя бы, в массивах. Если вы хотите сэкономить место на HDD, пакуйте данные gzencode()/gzdecode()… И вам нужно, хотя бы, написать самый тривиальный шаблонизатор на основе str_replace()…
ЗЫ
Я не буду говорить на сколько ваш код ужасен и не применим в «нормальной» системе, думаю вы и так уже это знаете.
Как написал barker, спасибо, что напомнили о веб-сайтах 90х…
0
Вы правы, но я все же попробую объяснить. Есть очень много людей, которые заняты в разработке сайтов — в разной степени, разной сложности. Не спорю, есть уже некие стандарты и профессиональные отточеные решения, в случае с php — их масса.
Я сам новичок и очень медленно по мере сил вникаю в php, но наблюдаю за форумами и вопросами — они одни и те же.
«Как сделать пагинатор? Как сделать листалку? Как вывести новости на сайт с mysql? Как вывести на файлах? „
Фактически — это топ вопросов. На подобные вопросы часто появляется профессиональный ответ и профессиональный код, но в этом отчасти и кроется проблема. Многие, кто работает с готовыми решениями, часто не могут разобраться в профессиональном коде.
Я честно говоря, сам долго не понимал, с какой вообще стороны подступиться к программированию. Просто читать учебники? Хорошо, но если нет мотива сделать что-то конкретное, прочитанное так и останется в глубинах памяти. Вдобавок в учебниках много теории. А задача, субъективно на пером этапе изучения простая — понять хотя бы механизм, принцип. Я вижу пока только один вариант. 1. иметь мотив сделать что-то конкретное — пусть — это велосипед. 2. найти максимально простой пример, самый простой код, желательно, условно говоря, с псевдокодом на русском языке.
Часто наблюдая за развитием тем на форумах, видел, что многих отпугивает объем кода в профессиональных решениях. А как объяснить механизм? Опять же, субъективно, только самым простейшим решением. И такое решение, в случае со стандартными вопросами php — однозначно может вызвать негодование или усмешку профессионала. Но не реальное, практическое использование примера является задачей — “это лишь начало попытки реализовать идею новостей на файлах».
REZ1DENT3, спасибо за советы по json_encode(), json_decode(). Пока для реальных задач хватает Mysql.
Я сам новичок и очень медленно по мере сил вникаю в php, но наблюдаю за форумами и вопросами — они одни и те же.
«Как сделать пагинатор? Как сделать листалку? Как вывести новости на сайт с mysql? Как вывести на файлах? „
Фактически — это топ вопросов. На подобные вопросы часто появляется профессиональный ответ и профессиональный код, но в этом отчасти и кроется проблема. Многие, кто работает с готовыми решениями, часто не могут разобраться в профессиональном коде.
Я честно говоря, сам долго не понимал, с какой вообще стороны подступиться к программированию. Просто читать учебники? Хорошо, но если нет мотива сделать что-то конкретное, прочитанное так и останется в глубинах памяти. Вдобавок в учебниках много теории. А задача, субъективно на пером этапе изучения простая — понять хотя бы механизм, принцип. Я вижу пока только один вариант. 1. иметь мотив сделать что-то конкретное — пусть — это велосипед. 2. найти максимально простой пример, самый простой код, желательно, условно говоря, с псевдокодом на русском языке.
Часто наблюдая за развитием тем на форумах, видел, что многих отпугивает объем кода в профессиональных решениях. А как объяснить механизм? Опять же, субъективно, только самым простейшим решением. И такое решение, в случае со стандартными вопросами php — однозначно может вызвать негодование или усмешку профессионала. Но не реальное, практическое использование примера является задачей — “это лишь начало попытки реализовать идею новостей на файлах».
REZ1DENT3, спасибо за советы по json_encode(), json_decode(). Пока для реальных задач хватает Mysql.
-4
Ладно, вдруг все же кому-то пригодится и у кого-то появится идея сделать что-то существенное, но простенькое.
Для тестирования чуток допиленное в архив:
https://yadi.sk/d/a1An-QyHg4prH
Для тестирования чуток допиленное в архив:
https://yadi.sk/d/a1An-QyHg4prH
-3
Я просто оставлю это здесь:
blog.getpelican.com
blog.getpelican.com
-3
lolipop, спасибо…
-3
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
0
И зачем люди годами вырабатывают лучшие практики? Не, мы сами с усами.
+3
Ну уж если так хотелось не использовать массивы и scandir, почему было бы не использовать RecursiveDirectoryIterator?
0
Sign up to leave a comment.
PHP и файлы. Новости без MySQL с перелистыванием