На сегодняшний день уже есть много решений, с помощью которых можно отказаться от использования привычного счетчика Twitter followers, а выводить эту цифру в собственном оформлении. В данном посте я предложу свой способ получения цифры followers из Twitter и опишу несколько его интересных сторон.
Итак, сама функция, которая в итоге возвращает число фолловеров за вашим Twitter-аккаунтом, имеет следующий вид:
function twitter_counter($id, $echo = true){ $twifilename = 'twicache.txt'; if ( file_exists($twifilename) ) { $twifile = file_get_contents($twifilename); $twicache = explode (', ', $twifile); } if ( $twicache[0] !== $id || $twicache[2] !== date('Y-m-d') || !$twifilename ) { $twit = @file_get_contents ('http://twitter.com/users/show/' . $id . '.xml'); if ( $twit ) { preg_match('/<followers_count>([0-9]+)<\/followers_count>/', $twit, $find); $tcount = $find[1]; if ( $twifilename ) file_put_contents($twifilename, $id . ', ' . $tcount . ', ' . date('Y-m-d')); } elseif ( file_exists($twifilename) ) { $twifile = file_get_contents($twifilename); $twicache = explode (', ', $twifile); $tcount = $twicache[1]; } } else $tcount = $twicache[1]; if ( $tcount == '' ) $tcount = '0'; if ( $echo ) echo $tcount; else return $tcount; }
В этот раз я не буду описывать что каждая строчка значит. Я считаю, что в данном случае это ни к чему. Я расскажу о том, какие он имеет свойства и возможности.
1. В том месте, где вы хотите увидеть число своих фолловеров, добавьте следующую строку, заменив TwitterLogin на своё имя аккаунта:
<?php twitter_counter('TwitterLogin') ?>
2. Если вы хотите, чтобы функция вам вернула число фолловеров вместо того, чтобы выводила его сразу экран, используйте следующий вызов функции:
twitter_counter('TwitterLogin', false)
3. Функция использует некое подобие системы кэша. Необходимый для получения актуального количества фолловеров файл подключается всего один раз в день. Это сделано для того, чтобы, во-первых, не повышать скорость загрузки сайта данной функцией, а во-вторых, не подключать каждый раз внешний файл. Путь, где храниться кэш-файл с числом фолловеров указывается в строке
$twifilename = 'twicache.txt';
4. Если вам не нравится, что кэш обновляется лишь раз в день, вы можете уменьшить время обновления. Например, обновлять его каждый час. Для этого стоит найти фразу date('Y-m-d')
, которая встречается в функции два раза, и заменить её в нашем примере на date('H')
.
5. Если вас вообще не интересует кэш и вы хотите отключить его, измените значение переменной на следующее:
$twifilename = null;
Вот и всё, что умеет данная функция. Кстати, она не привязана к какой-либо CMS, поэтому использовать её можно на любом сайте и на любой, даже "голой", странице. У кого остались какие-либо вопросы, задавайте их в комментариях.
На сложные сайты уходит много времени. И ещё больше на проработку его интерактивности. Поэтому я делегирую создание интерактивных сайтов в Липецке в веб-студии и трачу время именно на заработок денег.
Люблю украшать свой дом всякими удобными штучками или необходимыми красивыми вещами. Например, это касается лампы и люстры, которые лучше выбирать прямо в магазине, а не заказывать в интернете.
3 комментариев
А сам почему не используешь?
@ ovsyannikoff, у меня Twitter-аккаунт создан не под данный проект, а вообще им пользуюсь для общения, это во-первых.
Во-вторых, на данном блоге я не знаю как лучше обыграть этот счётчик, чем картинкой в сайдбаре.
А в третьих, я эту функцию писал по просьбе, а так как всё делалось бесплатно, я решил выложить этот код и в блог.
Полезная информация, но, к сожалению, до сих пор с этим не сталкивался) Спасибо!