(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

ATOM 1.0 лента на PHP 5

Источник: webmagazine

Данный формат появился в июле 2003 года как альтернатива RSS каналам. Сначала проект назывался Echo, но затем возникли проблемы с товарным знаком и проект был переименован в Atom. Atom - это основанный на XML формат, предназначенный для агрегирования информации в первую очередь с веб-сайтов. Он создавался для использования в блогах, однако может применяться и для любых других новостных и периодических изданий в web. Существенной частью спецификации является протокол, работающий поверх HTTP, предназначенный для автоматизации ведения блога. Мы будем рассматривать версию 1.0 ставшую стандартом W3C в 2005 году.

Пример формата Atom 1.0

По своей сути Atom так же как и RSS напоминает обычный XML файл:

  <?xml version="1.0" encoding="windows-1251"?>

<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru-RU">

<title>My News</title>

<subtitle type="text">News from my family.</subtitle>

<generator>Weblog Editor 2.0</generator>

<link rel="alternate" type="text/html" href="http://mysite.com/" />

<link rel="self" type="application/atom+xml" href="http://mysite.com/atomfeed.php" />

<id>http://mysite.com/</id>

<updated>2007-11-21T15:24:28-03:00</updated>

<author>

<name>Your name</name>

<email>webmaster@mysite.com</email>

</author>

<entry>

<title>My birthday</title>

<link rel="alternate" type="text/html" href="http://mysite.com/blog/2007/mybirtday.php" />

<id>http://mysite.com/blog/2007/mybirtday.php</id>

<content type="xhtml">

<div xmlns="http://www.w3.org/1999/xhtml">

I celebrate my birthday today!

</div>

</content>

<updated>2007-07-05T14:33:30-03:00</updated>

<published>2007-07-05T14:33:30-03:00</published>

</entry>

<entry>

<title>My new PC</title>

<link rel="alternate" type="text/html" href="http://mysite.com/blog/2007/mynewpc.php" />

<id>http://mysite.com/blog/2007/mynewpc.php</id>

<content type="xhtml">

<div xmlns="http://www.w3.org/1999/xhtml">

I want to buy new PC.

</div>

</content>

<updated>2007-04-10T14:32:34-03:00</updated>

<published>2007-04-10T14:32:34-03:00</published>

</entry>

</feed>

Как вы видите ничего сложного нет, я не буду сейчас описывать значения полей, а перейду сразу к генератору ленты новостей. Если вы чего-то непоняли, то можете почитать подробнее в rfc4287

Реализация на PHP 5

Как и в статье про RSS, Я не стал городить классы и шаблоны, а сделал все достаточно прямолинейно:

<?php

// Задаем формат даты (московское время)

define('DATE_FORMAT_RFC3339','Y-m-d\\TH:i:s-03:00');

// Сообщяем браузеру что передаем XML

header("Content-type: text/xml; charset=windows-1251");

// Дата последней сборки фида

$lastBuildDate=date(DATE_FORMAT_RFC3339);

echo <<<END

<?xml version="1.0" encoding="windows-1251"?>

<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru-RU">

<title>mysite.com AtomFeed</title>

<subtitle type="text">Мой супер блог</subtitle>

<generator>Weblog Editor 2.0</generator>

<link rel="alternate" type="text/html" href="http://mysite.com/" />

<link rel="self" type="application/atom+xml" href="http://mysite.com/atomfeed.php" />

<id>http://mysite.com/</id>

<updated>$lastBuildDate</updated>

<author>

<name>Mihail</name>

<email>editor@mysite.com</email>

</author>

END;

// В этом файле надо разместить подключение к базе данных

include_once("config.php");

// Модифицируйте запрос под вашу таблицу

$query = "SELECT name, anon, url, UNIX_TIMESTAMP(date) as pubdate

FROM news

WHERE visible=1

ORDER by date desc

LIMIT 0,10";

$res   = mysql_query($query);

while ($row=mysql_fetch_array($res)) {

// Убираем из тайтла html теги и лишние пробелы

$title   = strip_tags(trim($row['name']));

// С аноносом можно не проводить такие

// манипуляции, т.к. мы обьявим для него тип xhtml

$anon    = $row['annonce'];

$url     = $row['uri'];

$pubDate = date(DATE_FORMAT_RFC3339, $row['pubdate']);

echo <<<END

<entry>>

<title>$title</title>

<link rel="alternate" type="text/html" href="http://mysite.com/news/$url" />

<id>http://mysite.com/news/$url</id>

<content type="xhtml">

<div xmlns="http://www.w3.org/1999/xhtml">$anon</div>

</content>

<updated>$pubDate</updated>

<published>$pubDate</published>

</entry>

END;

}

echo "</feed>";

?>

Как видите ничего сложного, теперь можно назвать полученный файл atomfeed.php и и сделать ссылочку на сайте как у нас. Кстати проверить ленту на валидность можно с помощью замечательного сервиса FEED Validator.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 16.06.2008 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Quest Software. TOAD Xpert Edition
Zend Server with Z-Ray Developer Edition - Standard
JIRA Software Commercial (Cloud) Standard 10 Users
Stimulsoft Reports.Ultimate Single License Includes one year subscription, source code
VMware Workstation Pro 12 for Linux and Windows, ESD
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
CASE-технологии
OS Linux для начинающих. Новости + статьи + обзоры + ссылки
Компьютерные книги. Рецензии и отзывы
Один день системного администратора
Все о PHP и даже больше
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100