(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
IBM Domino Enterprise Server Processor Value Unit (PVU) Annual SW Subscription & Support Renewal
КОМПАС-3D v17 Home
TeeBI for RAD Studio Suite with source code single license
IBM Rational Functional Tester Floating User License
Stimulsoft Reports Server Team 10 users
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Компьютерный дизайн - Все графические редакторы
OS Linux для начинающих. Новости + статьи + обзоры + ссылки
Мир OLAP и Business Intelligence: новости, статьи, обзоры
Один день системного администратора
Все о PHP и даже больше
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100