Malatya Escort Adana Escort

Простой граббер контента с перекодировкой на лету
Блог фрилансера - сайты под ключ

Граббер с перекодировкой

Просмотров: 7260Комментарии: 2
ВебмастеруПолезное

Как то я уже писал про простой скрипт граббера который я использовал для вывода на паре своих сайтов программы телепередач основных центральных каналов на неделю. основа скрипта была взята с уроков по PHP с какого то блога года 2 назад. Так вот, тот сайт с которого граббер снимал программу, перестал её транслировать. Когда именно я не знаю, просто в очередной раз зайдя в раздел с телепрограммой, я увидел чистую страницу. Проверил урл сайта и там то же самое. Висит 2 ссылки и баннер.

Сегодня решил исправить ситуацию. Набрал в поиске Программа ТВ и в первой десятке нашёл один сайт который выдаёт то что мне нужно. Для корректной работы граббера нужно только вычислить от какого тега в коде страницы граббер будет брать контент и до какого тега выводить. Без этого будет выводиться вся страница - а это уже не так красиво и интересно как хочется. Теги которые будут ограничивать начало и конец кода страницы забираемого граббером я вычислил. Но возникла другая проблема - кодировка!

Сайт с которого я собрался тянуть ТВ программу в кодировке UTF-8 а сайты на которые граббер должен сливать контент в более старой кодировке win-1251. Значит нужно перекодировать на лету одну кодировку в другую (граббер простой и не использует кэширование). Насколько я помню, для этого используется функция mb_convert_encoding в которой указывается кодировка входящего потока и кодировка выходящего. Перед строкой вывода стянутого контента я поставил функцию перекодирования $content = mb_convert_encoding($content, "cp1251", "utf-8"); и всё стало нормально отображаться.

Если Вам понадобиться нечто подобное, можете воспользоваться готовым вариантом скрипта код которого я привожу ниже. Как сами видите, скрипт до ужаса простой, однако это не мешает ему отлично работать.

$content = file_get_contents("адрес страницы с которой будем брать контент");

$pos = strpos($content, "тег от которого граббер начнёт собирать контент");

$content = substr($content, $pos);

$pos = strpos($content, "тег до которого будем брать контент");

$content = substr($content, 0, $pos);

$content = mb_convert_encoding($content, "cp1251", "utf-8");

echo $content;

ADDITORIA агентство контекстной рекламы. Эффективные кампании в Директе, AdWords, в Бегуне. На сайте www.additoria.ru Вы найдете подробную информацию о том, как правильно организовать размещение рекламы в системах контекстной рекламы Яндекса, Google и Рамблера, и сможете отправить заявку на получение консультации по созданию и ведению кампании, а также заказать расчет бюджета Вашей контекстной рекламной кампании.

Комментариев: 2 RSS

1 Евгений 06-10-2011 15:44

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

2 Blogger 06-10-2011 21:48

В принципе можно. Но придётся повозиться.

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

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question


Комментарий будет опубликован после проверки

     

  

(обязательно)