Шляхом Альбірео

НовиниЗаписиPHPRSS рідер окремого каналу

2022.07.21
Парсінг RSS каналу електронної бібліотеки "Чтиво"
Новини бібліотеки

RSS книжкових новин і старих часописів, які були оцифровані і оформлені нещодавно. Переходячи за посиланням, Ви попадете на сторінку іншого ресурсу.

Е-бібліотека «Чтиво»Cайт бібліотеки зараз доступний.

  • 2025.06.1601:50 PM

    Різдвяна ковдра (Канді Штайнер).

    Вирішивши здивувати свою сім՚ю у Веллгейвені, штат Вермонт, на Різдво, я уявити собі не могла, що на мене саму чекає сюрприз – у вигляді несподіваної хуртовини. Я не була вдома чотири роки, відколи виїхала з цього міста, прагнучи пригод. І моє серце готове було забути єдиного чоловіка, якого я коли-небудь кохала. Рівер Дженсен – мій колишній чоловік. Я не планувала зустрічатися з ним під час мого візиту. Безумовно не передбачала, що він врятує мене, коли моя маленька орендована автівка зісковзне з обмерзлої дороги. І останнє, до чого я була готова – це застрягти з ним у крихітній хатині, перечікуючи бурю. Минуло чотири роки відтоді, як я бачила його – хлопчика, якого любила, а тепер чоловіка, якого зовсім не знаю. Але те, що ми застрягли з ним наодинці, не залишає варіантів, крім часу, проведеного разом. Усе в Рівері змінилося, і все ж у нього все ті ж зелені очі, які переслідували мене відтоді, як я поїхала. Тоді ми опинилися в глухому куті – не було про що говорити, нічого виправляти. І в мене був єдиний вибір – піти і почати все заново. Але що більше я знову відкриваю для себе людину, яку залишила позаду, то більше задаюся питанням, чому взагалі пішла. І чи не запізнилася я знайти дорогу додому.

  • 2025.06.1601:47 PM

    Невгамовні мерці (Саймон Бекетт).

    Кримінальний антрополог Девід Гантер ніколи не був улюбленцем долі, і життя продовжує ставити йому підніжки. Кар’єра Гантера висить на волосині, в особистому житті без змін. Тож, отримавши дзвінок із поліції Ессексу, Девід одразу вирушає туди.

    У мулистих плавнях Солтмерського естуарію знайдене тіло. Ознаки тління лиш торкнулися невідомого загиблого. Гантер починає шукати зв’язок між цим випадком та двома нерозкритими справами про зникнення людей. Згодом поліція натрапляє на інші людські останки. Підступна трясовина з кожним знайденим тілом починає видавати нові й нові моторошні таємниці. Наближаючись до їхньої розгадки, Гантер укотре переконується: не варто боятися мертвих – треба остерігатися живих.

  • 2025.06.1611:39 AM

    Герой передмістя (вид. 2003) (Іван Степанович Керницький).

    Львівські батяри і львівська поліція, смішні трафунки і соковитий львівський балак - все це ви знайдете у цій на рідкість веселій книжці з життя передвоєнного Львова. Написав її Іван Керницький, який народився у 1913 р. с. Суходіл на Перемишлянщині. У 1930-тих роках він видав у Львові кілька книг оповідань. По війні виїхав до Австрії, з 1949 мешкав в Америці. Помер у 1984 р. в Нью-Йорку.

  • 2025.06.1611:39 AM

    Тиша і грім (збірка) (вид. 2024) (Василь Симоненко).

    До видання ввійшли поезії, які були надруковані у збірках, що вийшли за життя («Тиша і грім») і після смерті поета: «Земне тяжіння», «Ти знаєш, що ти — людина», а також ранні вірші. У його поезії бринить мотив болю за людину, заклик цінувати її, берегти кожну особистість, кожне людське життя.

    У видавництві «Фоліо» також вийшли друком книжки В. Симоненка «Цар Плаксій та Лоскотон. Казки, байки, новели», «Ти знаєш, що ти — людина?», «Краще знати про що пишеш. Статті, рецензії, виступи, листи», «Про папери, засідання і живинку. Статті, рецензії, нариси».

Парсінг стрічки новин
Note

Бібліотека хороша, але генерація RSS-каналів не піддається стилізації на нашому сайті завдяки тому, що CSS прописані в тілі скрипта, а це не є добре.

Ми написали парсер на РНР, який виправляє вивід сторінки і позбавляє деяких вад при публікації, а саме:

  • Скасована дія float після виводу інформації, через додавання <p style="clear:both"></p> наприкінці генерації.
  • Частково скасовано стилізацію, шляхом відміни <div style="margin:20px 5px; color:#312d2d;"> в оригіналі. Це тепер не заважає показати шрифт будь-якого коліру і на будь-якому фоні.
  • Скореговані відступи блоків для кращого сприйняття.
  • Для зображень встановлений однаковий розмір.
  • Можна вказати кількість новин для розміщення на сторінці.
  • Додана перевірка доступності сайту в даний момент.

Код в процесі тестування і з цієї причини, можливі зміни. Не причесаний. Працює з усіма чотирма каналами джерела, однак, виявилася ще одна проблема - на сайті інколи дають посилання на локальне розташування зображень, тому вони не відображаються. Це помилка генерації фіду.

<!-- RSS читалка для новин сайта "Chtyvo" -->

[PHP]

<?php // URL фіду (джерело) $feeds = array( "https://chtyvo.org.ua/feed/bookshq.rss" ); // Резервуємо змінні для скрипта $entries = array(); $search = '<div style="margin:20px 5px; color:#312d2d;">'; $replace = '<div>'; foreach ($feeds as $feed) { $xml = simplexml_load_file($feed); $entries = array_merge($entries, $xml->xpath("//item")); } // Сортуємо фіди по даті (на всяк випадок) usort($entries, function ($feed1, $feed2) { return strtotime($feed2->pubDate) - strtotime($feed1->pubDate); }); ?> <div class="bg-transparent pad40-tb"> <!-- Класи від нашого зовнішнього фреймворка (але, можуть бути які завгодно) --> <ul class="list-unstyled"> <?php $NUMITEMS = 5; // Вказуємо кількість новин для показу $count = 0; // Виводимо на сторінку в кількості, яка вказана в $NUMITEMS foreach ($entries as $entry) { ?> <li> <p class="t100 t-orange250 pad20-t"> <?= strftime('%m/%d/%Y %I:%M %p', strtotime($entry->pubDate)) ?> </p> <p> <?=$entry = str_ireplace($search, $replace, (str_ireplace('<div style="float:left; padding: 10px;">', '<div style="float:left; padding-right: 40px; padding-top: 7px;">', (str_ireplace('Додано твір ', '', (str_ireplace('border="0" />', 'border="0" width="200">', $entry->description))))))); ?> </p> <p style="clear:both"></p> </li> <?php if (++$count >= $NUMITEMS) break; } ?> </ul> </div>

Appdate

Автори бібліотечного сайту відгукнулися листом і обіцяли переглянути формування новин своїх каналів, так що, вищенаписане може й не знадобиться, хоча, як окрема вправа з парсингу, вона була для нас дуже і дуже корисною.

Бібліотека використовує rss більше як засіб трансляції новин до свого твітеру, отже, якщо наші пропозиції їй в цьому не заважатимуть, то скрипт втратить свою актуальність.

Інколи сервер сайту буває зайнятий і тоді не може бистро віддати новини, тому варто перевірити, чи взагалі він не закритий на технічне обслуговування. Для цього ми дописали кілька рядків:

<!-- Перевірка доступності сайта -->

[PHP]

<?php $URL = 'http://chtyvo.org.ua/'; if (isSiteAvailible($URL)) { echo '<p>Cайт бібліотеки зараз доступний.</p>'; // Тут ми додаємо скрипт для виводу // .... } else { echo '<p>Сайт бібліотеки поки недоступний. Завітайте пізніше, будь ласка.</p>'; } ?>