- → Программирование
- → PHP
- → Статьи
Счетчик подписчиков FeedBurner на PHP
Для реализации этого удовольствия, вам необходимо иметь аккаунт на FeedBurner, также хостинг с поддержкой PHP и библиотекой GD. Но библиотека GD, как правило, входит в стандартную зборку PHP. Но все же, нужно убедиться, что библиотека GD поддерживается вашим PHP.
Проверка поддержки PHP/GD
Напишем простой скрипт для проверки поддержки сервером библиотеки GD. Для этого создайте файл, из следующим кодом:
echo "<h1>Server GD Support:</h1>"; echo "<xmp> "; print_r( gd_info() ); echo "</xmp> ";
Когда вы его запустите, он должен вернуть что-то подобное:
Array ( [GD Version] => bundled (2.0.34 compatible) [FreeType Support] => 1 [FreeType Linkage] => with freetype [T1Lib Support] => 1 [GIF Read Support] => 1 [GIF Create Support] => 1 [JPG Support] => 1 [PNG Support] => 1 [WBMP Support] => 1 [XPM Support] => 1 [XBM Support] => 1 [JIS-mapped Japanese Font Support] => )
Если все нормально, идем к следующему шагу. В противном случае, используйте другой хост. Если, вы тестируете на локальном сервере (н-р: Denwer), то можете установить библиотеку GD самостоятельно.
Создание фона счетчика
Используйте свою творческую натуру, и создайте красивый фон для счетчика. Ниже, пример моего счетчика:
Вы можете использовать мой фон, или картинку, которая вам по душе. Убедитесь, что вы сохранили ее в .PNG формате.
PHP код счетчика
Вот примерный PHP код счетчика подписчиков Feedburner. Код прокомментирован, вы сможете понять, что и где происходит.
rss_count.php
<?php /** * rss_count.php,v 1.0 * @copyright (C) 2011 sitear.ru * http://sitear.ru/ */ // сообщаем браузеру что это картинка Header ("Content-type: image/png"); // подключаем функцию перекодировки include('win2utf.php'); // загружаем фон счетчика $img_handle = imageCreateFromPNG("rss_count.png"); // устанавливаем цвета для надписей $color = ImageColorAllocate ($img_handle, 255, 250, 235); $color2 = ImageColorAllocate ($img_handle, 48, 52, 59); // получаем значение числа подписчиков feedburner $xml = simplexml_load_file("http://api.feedburner.com/awareness/1.0/GetFeedData?uri=sitear") or die ("Невозможно загрузить XML файл!"); $circulation = $xml->feed->entry['circulation']; // формируем текст $line1 = "$circulation читателей"; $line2 = "Подпишись сегодня!"; // рисуем надписи на фоне // (исходник, размер шрифта, угол наклона, x, y, цвет, шрифт, текст) imagettftext($img_handle, 25, 0, 70, 42, $color, "a_MachinaOrto.ttf", win_to_utf($line1)); imagettftext($img_handle, 25, 0, 21, 75, $color2, "Carolina.ttf", win_to_utf($line2)); // выводим ImagePng ($img_handle); // освобождаем память ImageDestroy ($img_handle); ?>
Как видите, ключевым моментом, есть получение данных их FeedBurner Awareness. Это сервис предоставляющий информацию о числе feedburner подписчиков вашей rss ленты. Не забудьте изменить значение uri, на ваше имя у FeedBurner.
Также, в коде используется функция перекодировки. Это для корректного отображения кирилических символов на фоне счетчика. Ниже предоставляю код этой функции
win2utf.php
<?php //------------------ Функция перекодировки из WIN в UTF --------------------// $_win1251utf8 = array( "\xC0"=>"\xD0\x90","\xC1"=>"\xD0\x91","\xC2"=>"\xD0\x92","\xC3"=>"\xD0\x93","\xC4"=>"\xD0\x94", "\xC5"=>"\xD0\x95","\xA8"=>"\xD0\x81","\xC6"=>"\xD0\x96","\xC7"=>"\xD0\x97","\xC8"=>"\xD0\x98", "\xC9"=>"\xD0\x99","\xCA"=>"\xD0\x9A","\xCB"=>"\xD0\x9B","\xCC"=>"\xD0\x9C","\xCD"=>"\xD0\x9D", "\xCE"=>"\xD0\x9E","\xCF"=>"\xD0\x9F","\xD0"=>"\xD0\xA0","\xD1"=>"\xD0\xA1","\xD2"=>"\xD0\xA2", "\xD3"=>"\xD0\xA3","\xD4"=>"\xD0\xA4","\xD5"=>"\xD0\xA5","\xD6"=>"\xD0\xA6","\xD7"=>"\xD0\xA7", "\xD8"=>"\xD0\xA8","\xD9"=>"\xD0\xA9","\xDA"=>"\xD0\xAA","\xDB"=>"\xD0\xAB","\xDC"=>"\xD0\xAC", "\xDD"=>"\xD0\xAD","\xDE"=>"\xD0\xAE","\xDF"=>"\xD0\xAF","\xAF"=>"\xD0\x87","\xB2"=>"\xD0\x86", "\xAA"=>"\xD0\x84","\xA1"=>"\xD0\x8E","\xE0"=>"\xD0\xB0","\xE1"=>"\xD0\xB1","\xE2"=>"\xD0\xB2", "\xE3"=>"\xD0\xB3","\xE4"=>"\xD0\xB4","\xE5"=>"\xD0\xB5","\xB8"=>"\xD1\x91","\xE6"=>"\xD0\xB6", "\xE7"=>"\xD0\xB7","\xE8"=>"\xD0\xB8","\xE9"=>"\xD0\xB9","\xEA"=>"\xD0\xBA","\xEB"=>"\xD0\xBB", "\xEC"=>"\xD0\xBC","\xED"=>"\xD0\xBD","\xEE"=>"\xD0\xBE","\xEF"=>"\xD0\xBF","\xF0"=>"\xD1\x80", "\xF1"=>"\xD1\x81","\xF2"=>"\xD1\x82","\xF3"=>"\xD1\x83","\xF4"=>"\xD1\x84","\xF5"=>"\xD1\x85", "\xF6"=>"\xD1\x86","\xF7"=>"\xD1\x87","\xF8"=>"\xD1\x88","\xF9"=>"\xD1\x89","\xFA"=>"\xD1\x8A", "\xFB"=>"\xD1\x8B","\xFC"=>"\xD1\x8C","\xFD"=>"\xD1\x8D","\xFE"=>"\xD1\x8E","\xFF"=>"\xD1\x8F", "\xB3"=>"\xD1\x96","\xBF"=>"\xD1\x97","\xBA"=>"\xD1\x94","\xA2"=>"\xD1\x9E"); function win_to_utf($a) { global $_win1251utf8; if (is_array($a)){ foreach ($a as $k=>$v) { if (is_array($v)) { $a[$k] = win_to_utf($v); } else { $a[$k] = strtr($v, $_win1251utf8); }} return $a; } else { return strtr($a, $_win1251utf8); }} ?>
Если желаете использовать другой TTF шрифт, можете создать собственный, или скачать.
Использование скрипта
Этот PHP код возвращается в виде PNG картинки, подобно как в случае с php превью картинок. Для использования скрипта, достаточно вызвать его как IMG тег в HTML коде. Смотрите пример:
<img src="rss_count.php" alt="Счетчик подписчиков FeedBurner." />
Пример работы скрипта
Вот мы и создали счетчик feedburner подписчиков с помощью PHP. Теперь давайте протестируем наше творение. У меня получился милый счетчик.
Когда будете использовать этот пример на собственном сайте, не забудьте поделиться впечатлением в комментариях. Автору будет приятно узнать, что его работа не напрасна. Спасибо за внимание!
Дальше: Как писать статью для сайта? + примеры
Development — Taras Moroz