Здравствуйте, товарищи. Есть вот такой код. Нужно, чтобы выводились не все новости сразу, а только несколько, например — 6. Новости эти состоят как видно из двух узлов xml-документа и ссылки, для перехода к целевой странице. Один документ — одна новость. Т. е., никаких реляционных БД. На постраничный вывод и пагинацию я уж конечно не расчитываю, но необходимо хотя бы ограничить число таких «анонсов» на страничке. Также, необходимо, чтобы «анонсы» выводились по дате публикации. а то они выводятся по инмени. Код (Text): <?php $handle = opendir($fileDir); while (($file = readdir($handle)) !== FALSE) { if (is_dir($fileDir . $file)) continue; if (!eregi('^news.*\.xml$', $file)) continue; $news = simplexml_load_file($fileDir . $file); if (count($news->xpath('["date"]'))) { echo '<h1>' . $news->headline . '</h1>'; echo '<div id="description"' . $news->description . '</div>'; echo "<a href=\"innerpage.php?id={$id}\">More...</a><br />"; } ?> В php совсем новичок. Очень надеюсь на помощь знающих людей.
Товарищи! Неужели никто не поможет решением? Проект не коммерческий, — «научно-просветительский». Сам не додумкаю. Поможите!
Код (Text): while (($file = readdir($handle)) !== FALSE) if (!is_dir($fileDir . $file) && eregi('^news.*\.xml$', $file)) $files[]=$file; А дальше уже гоняете как угодно цикл по $files, хоть с начала, хоть с конца, хоть 6 штук через одну: Код (Text): for ($i=0; $i<12; $i+=2) $news = simplexml_load_file($fileDir . $files[$i]); // и т.д.
Хыиуду, огромное вам человеческое спасибо! Таким образом удалось вывести заданное число «анонсов». Но, к сожалению, не могу сообразить каким образом отображать их по времени создания. Если, выводить по id (узел есть там в XML-файле), то все равно не удастся очевидно. Сортируются они (в каталоге) по имени. Имена у этих файлов — news20140817153118, news20140819172209 и т. д., то есть, к «пространству имен» (news) добавляется дата создания. Может быть как-то можно их выводить по последнему изменению? Как это «вклинить» в существующий код? Как же это все сложно то...
Все удалось! rsort($files) — то что доктор прописал! Эх, мне бы такого наставника в моем освоении php как вы! Все доступно и прекрасно усваивается. Спасибо вам еще раз!
Приятно видеть человека, который хочет и может разбираться сам, с минимальными подсказками со стороны.
БД мне не нужна. Я целенаправленно собирал сервер без sql. Я люблю flatfile. Я имею на это ряд причин. Добавлено спустя 5 минут 22 секунды: БД нужны для массивных проектов. У меня только справочники терминов.
Одну я выше изложил (…БД нужны для массивных проектов. У меня только справочники терминов.). Необходимы остальные?
тогда, если без фанатизма, то sqlite. а всеобъемлющая любовь к голым текстовым файлам, еще никого до добра не доводила.
бд даст возможность нормально индексированного поиска какимнить sphinx. Шерстить файлы регулярками может быть очень долго. Но если это просто кучка ссылок и страничек, то да. Можено прицепить поиск яндекса или гугла на сайт и будет удобно.
Ну, у меня вся эта «кухня» вполне схожа с общеизвестным движком DokuWiki (правда, гораздо проще, примитивнее, т. к., большинство их функционала мне не нужно), за исключением того, что весь контент хранится в xml-файлах, визуализируется же посредством xslt. А поиск фунциклирует достаточно шустро. На данный момент — порядка 700 xml-документов. Контент — однотипен (термин-заголовок—>введение—>собственно контент (текст, картинки)—>приложения (таблицы, формулы, схемы, библиографические списки), вероятно по-этому.