Донецкий техникум промышленной автоматики

Об'єднання PHP і RSS

  1. Що? Ви не чули про RSS?
  2. Малюнок 1. Стандартна іконка RSS
  3. Як я можу використовувати RSS?
  4. Стандартний формат RSS 2.0
  5. Лістинг 1. Приклад документа формату RSS 2.0
  6. У чому буде корисний PHP?
  7. висновок даних
  8. висновок слова
  9. Базові функції виведення даних
  10. Відсилання сторінки запитуючої стороні
  11. Лістинг 2. Закінчений файл RSS.php
  12. Лістинг 3. Файл виводу RSS.php
  13. Ввід данних
  14. Лістинг 4. showfeed.php
  15. Лістинг 5. Додавання опису
  16. Малюнок 2. Висновок showfeed.php
  17. Ресурси для скачування

Що? Ви не чули про RSS?

RSS - одне з найбільш часто зустрічаються скорочень. У різних версіях абревіатура RSS мала різні розшифровки, але зараз використовується розшифровка Really Simple Syndication (по-справжньому простого поширення інформації) - остання варіація цього дуже зручного і успішного стандарту.

На зорі розвитку інтернету існувало програмне забезпечення, що називалося Pointcast. Воно розміщувало дані на екранній заставці комп'ютера користувача, таким чином надаючи свіжі новини всіх видів. З плином часу розробники браузерів Netscape і Microsoft працювали над створенням чогось подібного цьому популярному сервісу. Компанія Netscape надала варіант, який, ставши популярним, в кінцевому підсумку, привів до появи RSS.

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

Якщо ви бачите на сайті іконку, зображену на малюнку 1, можете бути впевнені: цей сайт має RSS-стрічку. Ця ікона є стандартом де-факто, що позначає можливість використання RSS для перегляду оновлень на сайті. Дугові лінії означають радіохвилі, символ широкомовної природи RSS-стрічки.

Малюнок 1. Стандартна іконка RSS

додатки RSS

Існує безліч програм, більшість яких є безкоштовні і мають можливість читання і агрегування RSS-стрічок. Можливість агрегування дозволяє користувачам проводити подальшу деталізацію одержуваних новин за їх кількістю і природі. Кожна програма має свої можливості виділення потрібної інформації з безлічі, вона отримує з інтернету.

Наприклад, Thunderbird і Firefox від Mozilla, Internet Explorer 7 і незабаром очікувані версії Office від Microsoft і ін. Вже зараз настільки ж близькі до вас, як найближчий пошуковий сервер. Безліч різних способів роботи з стрічками дозволяє вибрати серед них найбільш зручний і відповідний саме вам. Якщо, звичайно, ви не прискіпливий програміст, який бажає написати свою програму для роботи зі стрічками! А саме до цього питання скоро перейде ця стаття!

Як я можу використовувати RSS?

Припустимо, на вашому сайті є матеріали, якими ви хочете поділитися з цільовою аудиторією. Думаєте, значне число користувачів, дізнавшись про ваш сайт і матеріалах, розміщених на ньому, буде повертатися кожен день, щоб перевірити оновлення? Ймовірно, немає. Чи відвідуєте ви для перевірки оновлень сайти, найбільш часто використовувані вами, кожен день? Знову ж таки, немає. Ось тут і приходить на допомогу RSS.

Для ваших користувачів RSS стане істотною вигодою, особливо якщо вони оцінюють думки або новини, розміщені на вашому сайті. Навіть не відвідуючи часто ваш сайт, вони завжди будуть знати, що ви оновили старі матеріали сайту або додали нові. Це дозволить користувачам економити час і зусилля і одночасно не пропустити поновлення!

Створення змісту не проблема, в разі якщо на вашому сайті ви використовуєте RSS-стрічки для забезпечення агрегування змісту. Шляхом вилучення даних з стрічки можна домогтися наповнення сайту великим числом різних матеріалів швидко.

Особисто я віддаю перевагу збирати матеріали відібраних результатів з різних сайтів, таких як Craigslist ( www.craigslist.org ). Невелика хитрість, яку я використовую для покупки використаної електронної техніки. Ви можете зробити пошук по сайту і в результаті отримати RSS-сторінку. Якщо ви вибрали пошук матеріалів про камерах, що знаходяться в певному ціновому діапазоні, у вас буде можливість побачити, хто і коли виставив камеру на продаж на вашій RSS-стрічці! Це дає вам перевагу бути першим претендентом на покупку!

Стандартний формат RSS 2.0

Стандарт RSS описує і містить наповнення стрічок, які можуть бути створені з різних джерел для визначення інтернет-документів і створення в дуже загальному сенсі списків посилань і їх описів.

Погляньте на RSS-формат на лістингу 1 - він використовує зразок документа з стрічки NASA "Liftoff News".

Лістинг 1. Приклад документа формату RSS 2.0
&lt;? Xml version = "1.0&quot;?> <Rss version = "2.0"> <channel> <title> Liftoff News </ title> <link> http://liftoff.msfc.nasa.gov/ </ link> < description> Liftoff to Space Exploration. </ description> <language> en-us </ language> <pubDate> Tue, 10 Jun 2003 4:00:00 GMT </ pubDate> <lastBuildDate> Tue, 10 Jun 2003 9:41 : 01 GMT </ lastBuildDate> <docs> http://blogs.law.harvard.edu/tech/rss </ docs> <generator> Weblog Editor 2.0 </ generator> <managingEditor> [email protected] </ managingEditor > <webMaster> [email protected] </ webMaster> <item> <title> Star City </ title> <link> http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp < / link> <description> How do Americans get ready to work with Russians aboard the International Space Station? They take a crash course in culture, language and protocol at Russia's Star City. </ Description> <pubDate> Tue, 03 Jun 2003 9:39:21 GMT </ pubDate> <guid> http: //liftoff.msfc.nasa .gov / 2003/06 / 03.html # item573 </ guid> </ item> <item> <title> Space Exploration </ title> <link> http://liftoff.msfc.nasa.gov/ </ link > <description> Sky watchers in Europe, Asia, and parts of Alaska and Canada will experience a partial eclipse of the Sun on Saturday, May 31st. </ description> <pubDate> Fri, 30 May 2003 11:06:42 GMT < / pubDate> <guid> http://liftoff.msfc.nasa.gov/2003/05/30.html#item572 </ guid> </ item> <item> <title> The Engine That Does More </ title> <link> http://liftoff.msfc.nasa.gov/news/2003/news-VASIMR.asp </ link> <description> Before man travels to Mars, NASA hopes to design new engines that will let us fly through the Solar System more quickly. The proposed VASIMR engine would do that. </ Description> <pubDate> Tue, 27 May 2003 8:37:32 GMT </ pubDate> <guid> http://liftoff.msfc.nasa.gov/2003/05/27 .html # item571 </ guid> </ item> <item> <title> Astronauts 'Dirty Laundry </ title> <link> http://liftoff.msfc.nasa.gov/news/2003/news-laundry.asp </ link> <description> Compared to earlier spacecraft, the International Space Station has many luxuries, but laundry facilities are not one of them. Instead, astronauts have other options. </ Description> <pubDate> Tue, 20 May 2003 8:56:02 GMT </ pubDate> <guid> http://liftoff.msfc.nasa.gov/2003/05/20. html # item570 </ guid> </ item> </ channel> </ rss>

Перший породжений об'єкт XML-форматированного документа - визначення <channel>. Канал є простою власної стрічкою асоційованої з ним інформації. Безліч RSS-стрічок має тільки один канал, але ви можете використовувати кілька, можливо, для цього вам доведеться використовувати розділовий фільтр. Об'єкти title, link і description потрібні канальним об'єктом. Вони задають базові опису стрічки. Додаткові об'єкти: language, copyright, managingEditor, webMaster, pubDate, lastBuildDate, category, generator, docs, cloud, ttl, image, rating, textInput, skipHours і skipDays.

Канал може містити нескінченну кількість елементів. Всі елементи елемента ITEM необов'язкові, проте для успішної перевірки правильності потрібно хоча б один заголовок або опис. Елементи: title, link, description, author, category, comments, enclosure, guide, pubDate і source.

У чому буде корисний PHP?

Ця стаття передбачає наявність у вас деякого досвіду використання PHP, зокрема, що ви вмієте передавати змінну в функцію і виводити з неї результат. У мові PHP існує безліч функцій, що спрощують роботу з XML як всередині, так і зовні додатків.

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

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

XML_RSS () - це PEAR-пакет, який спростить вирішення багатьох комплексних проблем інтерпретації файлу XML RSS. PEAR - це безкоштовна бібліотека функцій PHP з відкритим кодом. Ви можете вже мати на вашому комп'ютері цю бібліотеку, якщо ви робили установку PHP-продуктів. У будь-якому випадку, ця стаття вимагає її наявність (див. Посилання в розділі ресурси ). XML_RSS () - ця проста функція, передає місцезнаходження RSS-стрічки, завантажує XML-стрічки в масив, готовий для використання PHP-додатками. Елементи масиву мають іменовані ключі, асоційовані з елементами і атрибутами файлу читання RSS.

висновок даних

Тепер, коли ви знаєте, що таке формат даних RSS, ви можете визначитися з даними, які було чути, і перевести їх в цей формат. На щастя, PHP має потужні можливості по обробці RSS і XML, які прискорюють процес розробки. Як і більшість загальних Web-стандартів, PHP має ряд готових функцій, готових до використання в ваших додатках.

висновок слова

Ви створили стрічку, але як дати людям знати про неї? Ви можете повідомити Mozilla Firefox і Microsoft Internet Explorer і інших програм для читання про вашій стрічці додаванням наступного тега в заголовок вашої домашньої сторінки:

<Link rel = "alternate" type = "application / rss + xml"
href = "URL_FOR_YOUR_FEED" title = "FEED_TITLE" />

Оновлення тег відповідно вашому URL і типу стрічки.

У цій статті описується висновок даних з бази використанням "" і наступний переклад їх в формат RSS-стрічки. Налаштуйте її на пошук останніх додавань до набору даних при кожному зверненні до неї і відсилання свіжих відомостей запитувачу.

Стрічка може створюватися з будь-яких джерел даних вашого сайту, але в будь-якому випадку підсумку ви повинні бути впевнені в тому, що стрічка містить достатньо даних, якими може скористатися одержувач. Як мінімум повинні бути присутніми URL-адресу та короткий опис, проте в стрічку можуть бути включені будь-які дані, опубліковані на вашому сайті.

Ви будете використовувати PHP для з'єднання вашої бази даних Web-додатків, виведення оновленої інформації та перекладу її в формат XML RSS документа.

Базові функції виведення даних

Припустимо, ви маєте базу даних варіантів. Ви створите стандартне підключення і виведете сторінку з удобночітаемим XML.

Відсилання сторінки запитуючої стороні

Тепер, коли у вас є дані, представлені в потрібному форматі в вашому власному коді, вам необхідно упевнитися в тому, що ви виводите дані вірно: щоб будь-який користувач, що вводить ваш URL-адресу в свою програму читання, отримував потрібну йому XML RSS -стрічка (див. лістинг 2).

Лістинг 2. Закінчений файл RSS.php
&lt;? Php $ database = "nameofthedatabase"; $ Dbconnect = mysql_pconnect (localhost, dbuser, dbpassword); mysql_select_db ($ database, $ dbconnect); $ Query = "select link, headline, description from` headlines` limit 15 "; $ Result = mysql_query ($ query, $ dbconnect); while ($ line = mysql_fetch_assoc ($ result)) {$ return [] = $ line; } $ Now = date ( "D, d MYH: i: s T"); $ Output = "&lt;? Xml version = \" 1.0 \ &quot;?> <Rss version = \" 2.0 \ "> <channel> <title> Our Demo RSS </ title> <link> http: //www.tracypeterson. com / RSS / RSS.php </ link> <description> A Test RSS </ description> <language> en-us </ language> <pubDate> $ now </ pubDate> <lastBuildDate> $ now </ lastBuildDate> < docs> http://someurl.com </ docs> <managingEditor> [email protected] </ managingEditor> <webMaster> [email protected] </ webMaster> "; foreach ($ return as $ line) {$ output. = "<item> <title>". htmlentities ($ line [ 'headline']). "</ title> <link>". htmlentities ($ line [ 'link ']). "</ link> <description>". htmlentities (strip_tags ($ line [' description '])). "</ description> </ item>"; } $ Output. = "</ Channel> </ rss>"; echo $ output; ?>

Давайте пройдемо по лістингу крок за кроком. Спочатку ви встановлюєте об'єкт підключення бази даних для локальної бази даних. Вона має записи з полями, що містять заголовок, посилання і опис - їх ви будете виводити в ваш XML-відповідь. Виконайте SQL-запит для таблиці викликом функції MYSQL_QUERY (), а отриманий результат використовуйте спільно з WHILE для перекладу формату даних в новий простий масив кінцевого об'єкта.

Використовуйте новий готовий масив для створення XML-файла в змінній $ output додаванням нових елементів при проході через масив $ line раз для кожного повертається відповіді. Це не займе багато часу, оскільки раніше в SQL-повідомленні ви обмежили кількість відповідей до 15. Щоб використовувати цей фрагмент коду в якості стандартного блоку стартера, вам необхідно прибрати фіктивні посилання, ім'я бази даних і інформацію про вхід в систему для відображення вашої власної середовища .

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

Лістинг 3. Файл виводу RSS.php
&lt;? Xml version = "1.0&quot;?> <Rss version = "0.97"> <channel> <title> Our Demo RSS </ title> <link> http://www.tracypeterson.com/RSS/RSS.php < / link> <description> A Test RSS </ description> <language> en-us </ language> <pubDate> Mon, 13 Nov 2006 22:46:06 PST </ pubDate> <lastBuildDate> Mon, 13 Nov 2006 22 : 46: 06 PST </ lastBuildDate> <docs> http://someurl.com </ docs> <managingEditor> [email protected] </ managingEditor> <webMaster> [email protected] </ webMaster> <item rdf : about = "http://www.tracypeterson.com/"> <title> This is Tracy's Web Page! </ title> <link> http://www.tracypeterson.com/ </ link> <description> This is a demonstration of how to get PHP to work for your RSS feed. </ description> </ item> <item rdf: about = "http://www.tracypeterson.com"> <title> This is Tracy's site again! </ title> <link> http://www.tracypeterson.com </ link> <description> Again, this is a demonstration of the power of PHP coupled with RSS. </ description> </ item> </ channel> </ rss>

Тепер будь-хто може ввести URL-адресу в RSS.php і довантажити свіжий RSS-файл, який містить нові матеріали!

Ввід данних

Ви будете використовувати функції XML_RSS () для введення RSS-стрічки в PHP-скрипти, готові для використання, як будь-який інший масив. Подібно запитом для бази даних, ви будете мати масив, які ви зможете використовувати на свій розсуд.

В цьому випадку потрібно вам необхідно під'єднати RSS.php і завантажити копію, яка буде показувати його в неврегульованих списку (див лістинг 4).

Лістинг 4. showfeed.php
&lt;? Php require_once "XML / RSS.php"; $ Rss = & new XML_RSS ( "http://www.tracypeterson.com/RSS/RSS.php"); $ Rss-> parse (); echo "<h1> Headlines from <a href=\"http://www.tracypeterson.com/RSS/RSS.php\"> Tracy Peterson's Site </a> </ h1> \ n"; echo "<ul> \ n"; foreach ($ rss-> getItems () as $ item) {echo "<li> <a href=\"". $item['link']. "\">". $ Item [ 'title']. "</a> </ li> \ n"; } Echo "</ ul> \ n"; ?>

Цей короткий приклад, показаний на лістингу 4 , Наведено в інструкції до PEAR. Давайте досліджуємо його рядок за рядком і переконаємося в тому, що він насправді використовує виключно спарені методи, доступні в класі XML_RSS (), конструкторі і parse (). Останній виробляє висновок відображення в якості масиву, який я згадував раніше.

Спочатку потрібно скористатися функцією require_once () для завантаження файлу RSS.php з вашої інсталяції PEAR. Якщо PEAR налаштована вірно і встановлений XML_RSS, його розташування буде коректно; об'єкт XML_RSS готовий до використання. Потім створіть новий об'єкт з ім'ям $ rss, який буде результатом передачі URL-адреси в конструктор XML_RSS.

Для повернення значень в RSS-стрічку використовуйте метод parse (). Перша echo-рядок запускає установку базового HTML, використовуваного вами для відображення RSS-стрічки користувачеві. В цьому випадку ви оголошуєте, що невпорядкований список - список заголовків від мого сайту!

Вираз foreach () передає кожен елемент з обробленої стрічки, використовуючи метод getItems (), в новий масив $ items. Кожен з елементів масиву називається після абсолютного XML-тега, в якому він міститься. В цьому випадку ви використовуєте тільки посилання і заголовок; через мить ви додасте опис, щоб дослідити цей пункт. Кожен раз, коли вираз foreach завершує обробку, воно переміщається на наступний елемент. Це відбувається до тих пір, поки не буде оброблена вся RSS-стрічка.

Тепер додайте опису до кожного з відображених результатів.

Всередині циклу foreach () додайте лінію, виділену в лістингу 5.

Лістинг 5. Додавання опису
foreach ($ rss-> getItems () as $ item) {echo "<li> <a href=\"". $item['link']. "\">". $ Item [ 'title']. "</a> </ li> <br>"; echo $ item [ 'description']. "<br> <br> \ n"; }

Ви просто додаєте в неорганізований список рядок переривання і рядок опису. Нижче ви побачите приклад виведення showfeed.php.

Малюнок 2. Висновок showfeed.php

На закінчення

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

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

Ресурси для скачування

Схожі теми

Підпишіть мене на повідомлення до коментарів

Що?
Ви не чули про RSS?
У чому буде корисний PHP?
Ви не чули про RSS?
Як я можу використовувати RSS?
Думаєте, значне число користувачів, дізнавшись про ваш сайт і матеріалах, розміщених на ньому, буде повертатися кожен день, щоб перевірити оновлення?
Чи відвідуєте ви для перевірки оновлень сайти, найбільш часто використовувані вами, кожен день?
Lt;?
Quot;?
Asp < / link> <description> How do Americans get ready to work with Russians aboard the International Space Station?