Собственный Twitter & RSS счетчик в виде текста с сохранением в кеше

твиттер счетчик текстом с помощью php
Это может быть уже и не новость, что можно через Api  вытаскивать количество подписчиков и много другой информации, да и в интернете есть множество скриптов и плагинов решающие данную задачу.

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

А тут я вам выкладываю полностью переделанный мною скрипт найденный на буржуйском блоге  там и jquery и аякс и еще куча всего, с ним вы ознакомиться можете тут  http://tutorialzine.com/2010/05/showing-facebook-twitter-rss-stats-jquery-yql/

Я переделал только php скрипт, да собственно только он нам и нужен, так как вы сами потом сможете как хотите украшать свои счетчики.

Отличия моего скрипта от других:

  • В одном скрипте вы имеете и rss и twitter счетчик
  • Устанавливается время жизни кеша
  • Если время жизни кэша кончилось а в это время обновляются счетчики то будет выведено последнее значение(это касается rss)
  • Такое бывает редко но все таки если сервис twitter api будет недоступен , то так же будет выведено последнее значение(все зависит от
    установленного вами времени жизни кеша)
  • Допустим вы только установили себе этот счетчик а в это время идет обновление rss счетчика на сервере или твиттер недоступен, то будет выведена надпись которую вы так же можете задать через переменную.

И так вот мой скрипт, комментарии по коду.

rss_count.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
/*
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $fburl);
$stored = curl_exec($ch);
curl_close($ch);
$rsscountxml = new SimpleXMLElement($stored);  # ставим если не работает этот $rsscountxml =  simplexml_load_file($fburl); код
*/


$timecache = 5; #часов
$cachefile = 'cache.txt';
if(file_exists($cachefile) && time() - filemtime($cachefile) < $timecache*60*60)
#если файл кэша существует и время его создания не больше %часов% то вытаскиваем значения из кэша, иначе идем за ними на сервер
{
$frh=file($cachefile);
$countrss =  $frh[0];
$counttwitt = $frh[1];
}
else {
$fburl='http://feedburner.google.com/api/awareness/1.0/GetFeedData?uri='.$rss_name;
$twurl = 'http://twitter.com/users/show/'.$twitter_username;
$followerscount =  simplexml_load_file($twurl);#работаем с xml твиттера
$rsscountxml =  simplexml_load_file($fburl); #работаем с xml rss
$rsscount = $rsscountxml->feed->entry['circulation']; #тащим количество подписчиков rss
$twittcount = $followerscount->followers_count; #тащим количество фолловеров
if ($rsscount == '0'|| $rsscount == '' || $twittcount == '')
#ну с условимя я замутииил)))  все для вашего удобавтсва, чтобы при обновление счетчика на сервере у вас не показывал 0, значение будет браться из кеша
{
if (file_exists($cachefile)) { $frh = file($cachefile);  $countrss = $frh[0]; $counttwitt = $frh[1];}
else {$countrss = $rssna; $counttwitt = $twittna;} #это сообщение выйдет в случае если вы только поставили себе этот скрипт а в это время как раз обновляется счетчик и у вас пустой кэш
}
else { $countrss = $rsscount;
$counttwitt = $twittcount;
}
#заняем значения счетчиков в кэш файл
$fwh = fopen($cachefile,"a+");
flock($fwh, 2);#блокируем файл
ftruncate ($fwh,0); #очищаем файл
fwrite($fwh,$countrss."\r\n".$counttwitt);
fflush ($fwh); #очищаем буфер
flock($fwh, 3); #разблокируем
fclose($fwh);
clearstatcache();#очищаем кэш проверки создания файла кэша
}
?>

ну вот и все, этот скрипт используем на внос с помощью инклуда

теперь код который будет выводить значение, точнее даже не код а пару переменных и одна фукнкция инклуд.

1
2
3
4
5
6
$timecache = 5; #время жизни кэша, часов
$twitter_username = 'имя пользователя твиттера';
$rss_name = 'имя пользователя rss ';
$rssna = 'rss n/a'; #надпись которая выйдет если вы только установили счетчик а идет обновление(рсс)
$twittna = 'twitter n/a'; #надпись которая выйдет если вы только установили счетчик а сервер не доступен(твиттер)
include('rss_count.php'); #инклудим наш скрипт

и на конец две самые главные переменные в которых содержатся значения

1
2
$countrss
$counttwitt

если кто не знает как пользоваться переменными, это делается так:

1
2
echo $countrss; выводим число rss подписчиков
echo $counttwitt; выводим число фолловеров

ну вот и все)) Ставьте куда хотите хоть в сайдбрах, хоть в хидер, хоть в футер, и оформляйте как вздумается.
Пример моего оформления вы можете посмотреть в моем сайдбаре(кстати эти всплывающие подсказки из того урока на который я дал ссылку).
Если кому то интересно, как можно оформить эти счетчики дайте знать, я что нибудь придумаю и выложу в других статья)
И еще, этот скрипт под любую цмс)))

Csska.ru

Комментарии: (11)

Спасибо попробуем

если найдете ошибки или если есть советы по улучшению кода напишите пожалуйста в комментах

“Собвстенный Twitter & RSS счетчи”

Опечатка..

сенк)) забываю заголовки проверять, они же не подчеркиваются в случае очепятки))

1
2
3
4
5

$timecache = 5; #время жизни кэша, часов
$twitter_username = ‘имя пользователя твиттера’;
$rss_name = ‘имя пользователя rss ‘;
$rssna = ‘rss n/a’; #надпись которая выйдет если вы только установили счетчик а идет обновление(рсс)
$twittna = ‘twitter n/a’; #надпись которая выйдет если вы только установили счетчик а сервер не доступен(твиттер)
include(‘rss_count.php’); #инклудим наш скрипт

извините, а этот код куда вставлять?

в любое место в вашей теме,
а это
echo $countrss; выводим число rss подписчиков
echo $counttwitt; выводим число фолловеров
ставим там где нужно вывести число подписчиков

спасибо)
$timecache = 5; #время жизни кэша, часов
$twitter_username = ‘имя пользователя твиттера’;
$rss_name = ‘имя пользователя rss ‘;
$rssna = ‘rss n/a’; #надпись которая выйдет если вы только установили счетчик а идет обновление(рсс)
$twittna = ‘twitter n/a’; #надпись которая выйдет если вы только установили счетчик а сервер не доступен(твиттер)
include(‘rss_count.php’); #инклудим наш скрипт

его вставлять нужно с тегом

открываете вашу папку с темой вордпресса wp-content\themes\ваша тема, создаем новый текстовый файл переименовываем в rss_count.php и вставляем туда код который приведен в статье, потом в файл sidebar.php
вставляем
$timecache = 5;
$twitter_username = ‘csska’; # вместо csska ваш логин
$rss_name = ‘csska‘;# вместо csska ваш логин
$rssna = ‘rss n/a’;
$twittna = ‘twitter n/a’;
include(‘rss_count.php’);

затем в том месте где хотите вывести подписчиков вставляете
echo $countrss;
echo $counttwitt;

или

посреди хтмл кода

спасибо большое. и еще небольшой вопрос, в каком формате нужно сохранять картинку оформления без потери качества?

смотря какую, маленький фон с не большим количеством тонов можно в гифе сохранить или png, логотип в jpg качество обычно 60-80 ставлю, и тип progressive для постепенной загрузки изображения. ну вообще почитай статьи в инете про это, я тоже когда то читал)

Оставить комментарий

Это не спам.

если переменные с фида и твиттера пришли пустые