Выкладываю свой велосипед с:
- возможностью вывода одного или нескольких последних статусов
- подсветкой ссылок, e-mail, юзеров, хэш-тегов
- кэшированием, которое работает в т.ч. когда Твиттер упал (а такое бывает)
- перекодировкой (если на сайте используется не UTF-8)
- гибкими настройками, собственными шаблонами
Требования: PHP5, cURL, DOMDocument.
По сути, это класс-обертка для RSS отдельного пользователя твиттера.
Свойства класса
Свойство | Значение по умолчанию | Описание |
---|---|---|
cacheFile | twitter.txt | файл, где класс будет хранить кэш |
cachePeriod | 1800 | время, через которое кэш устареет и твитты будут обновлены (в секундах) |
timeout | 5 | время в секундах, через которое будет считаться, что сервер недоступен |
twittsMaxCount | 9 | количество твиттов, которое отображать |
twittWrapper | <li><p>[status]</p><p><a href=\"[link]\">[date]</a></p></li>\n |
шаблон для твитта с переменными [status], [link] и [date] |
dateFormat | d.m.Y H:i:s | формат даты |
errorNotAvailable | Service not available. | сообщение, которое выводится при недоступности сервера и отсутствии кэша |
errorNoStatuses | No statuses found for this user. | сообщение, которое выводится, когда у пользователя не обнаружено твиттов |
curlOptions | array(), то есть пустой массив | если вы хотите задать дополнительные свойства для CURL, например работа через прокси |
charset | FALSE, то есть остается кодировка UTF-8 | если задано, то твитт будет перекодироваться в соответствующую кодировку |
highlightUrls | FALSE | подсвечивать ссылки |
highlightEmails | FALSE | подсвечивать e-mail (не рекомендую, конечно, из-за спамеров, но может кому-нибудь пригодится :) |
highlightUsers | FALSE | подсвечивать пользователей твиттера вида user |
highlightHashtags | FALSE | подсвечивать т.н. хэштеги вида #tag |
Примеры использования
Выводим 9 последних статусов пользователя:
$tr = new TwittReader('user');
echo '<ul>' . $tr->getTwitts() . '</ul>';
Теперь настроим немножко под себя:
$tr = new TwittReader('user');
$tr->dateFormat = 'H:i'; // показывать только время твитта
$tr->twittWrapper = "<li><strong>[date]</strong> [status]</li>"; // изменим шаблон твитта
$tr->twittsMaxCount = 3; // выводить три последних твитта
$tr->cachePeriod = 60; // кэш устаревает через одну минуту
$tr->highlightUsers = TRUE; // подсвечивать пользователей
$tr->highlightUrls = TRUE; // подсвечивать ссылки
$tr->highlightHashtags = TRUE; // подсвечивать хэштеги
$tr->charset = 'windows-1251'; // кодировка
// возможные ошибки
$tr->errorNotAvailable = '<span class="error">Сервер не доступен.</span>';
$tr->errorNoStatuses = '<span class="error">Нет твиттов.</span>';
// использовать прокси
$tr->curlOptions = array(
CURLOPT_PROXY => "127.0.0.1:3128"
);
echo '<ul>' . $tr->getTwitts() . '</ul>';
Скачать (2.8 KB)
Проект на Google Code