Создаем счетчик-картинку, показывающий беки на сайт. Часть 2.

Рубрики: Разное  

Первую часть Вы можете прочитать здесь.

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

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

Nokia правильно привел комментарий к моей прошлой статье. Для определения количества беков достаточно пройти по этому адресу и посмотреть число в скобках напротив Inlinks. То есть его-то мы и должны получить.

Сейчас будет граббер.

Чтобы получить число, нужно вытащить код страницы и с помощью регулярных выражений найти нужную информацию. Для получения кода страницы я буду использовать обычную работу с файлами (любители curl – не гневайтесь, сейчас ситуация тривиальная и ничего «ацкого» не нужно).

Код простой, как колбаса:


$data = "";
$file = fopen ("http://siteexplorer.search.yahoo.com/search?
p=http%3A%2F%2Fdimoning.ru&y=Explore+URL&fr=sfp", "r");
while (!feof ($file)){
	$data .= fread ($file, 255);
}
fclose ($file);

echo htmlspecialchars ($data);

Соответственно, работает так. В $data мы запишем исходник страницы (обнуляем ее на всякий случай). Открываем адрес, как обычный файл (для чтения). Читаем все из «файла» в цикле и закрываем файл. Потом я вывел все для наглядности. Сделаю замечание: не все хостеры позволяют делать такие вещи (открывать адрес, как файл), хотя на всех хостингах, где я хостился такая возможность была.

Так, теперь нам нужно выдрать нужный нам кусок. Регулярное выражение тоже очень простое. Тут вообще ничего сложного похоже нет :( Код простой как жареная курица с сыром:


preg_match ("/Inlinks (.*)/", $data, $match);
$count = strip_tags(str_replace ("(", "", str_replace (")", "", $match[1])));
echo $count;

Регулярное выражение выдирает нам значение (2,208). Оно аж запятой уже разделено, но нужно удалить кавычки. Запомните, начинающие программисты! Важно как можно больше извращаться в коде! И вот яркий пример – удалить кавычки удалось самым извращенным способом. Соответственно, «голое» число ссылок записано в переменную $count, которую нужно передать счетчику.

Для передачи числа счетчику можно прямо в адресе изображения для тега <img> дописать как обычный GET-запрос: img.php?id=… Так и сделаем. Приведу сразу полный кусок кода.

Код простой, как салат с сухарями… Похоже, пора обедать уже.


<!-- Вызываем счетчик немного другим способом, с передачей параметра: -->
 <img src="./counter.php?count=<?php echo $count; ?>">

/* В самом скрипте, рисующим счетчик кое-что исправляем: */
$number = $_GET['count'];

Готово. Да, есть некоторый косяк с регуляркой – кроме скобок оно цепляет еще и теги, которые мы вырезаем с помощью strip_tags. Почему так – попробуйте разобраться самостоятельно в качестве упражнения. Вот хорошие материалы по регулярным выражениям: часть 1, часть 2. [кажись отмазался =)]

UPD: Вышло у меня вот так:

Скачать исходник в моем исполнении.



Отзывов (6) на «Создаем счетчик-картинку, показывающий беки на сайт. Часть 2.»

    Defs пишет:

    Уважаемый DimoninG, сегодня я честен как никогда :grin:
    Лень собирать код, но кнопочку хочу, где скачать готовый результат? :mrgreen:


    DimoninG пишет:

    Defs, я уж думал вообще никому это не надо :grin:
    В статье (снизу) появилась ссылка на скачку исходника ;)


    сказочник пишет:

    ой, мне очень надо. а как все это дело теперь вставить в шаблон?


    Александр пишет:

    Спасибо за кнопку


    Сергей пишет:

    Афтар, не дури голову, просто дай готовый код для вставки на сайт, ждем-с…


    Сергей пишет:

    Общественность жаждет счетчика с использованием например Яндекса. Воздерживаюсь от матов в адрес Яху.. за скупую недобросовестность, в отстой его! не может он реально считать.


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

Теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не спамер и не робот.
Я спамер и робот!

dimoning.ru
SEO и программирование.
  • Рубрики:



  • Рассылка:

  • Дополнительно:

  • По месяцам:

  • Счетчики:

    Яндекс цитирования
  • Спонсоры:


  • dimoning.ru © 2008-2011 г.
    Все материалы авторские, но их можно копировать с указанием прямой ссылки на источник.