Ошибка: Failed to parse the Currency Converter XML document.
$35 644.61


Ошибка: Failed to parse the Currency Converter XML document.
$56 888.91


Ошибка: Failed to parse the Currency Converter XML document.
$1 099.70


"Грабим" странички

С аудиограбберами знакомы все. Нам предстоит сделать свой собственный граббер информации из Интернета. Нам понадобится подопытный кролик, на роль которого я предлагаю выбрать сайт http://subscribe.ru :-) Что мы можем у них стянуть хорошего? Собственно говоря, там хорошего много, но есть кое-что, что нам и нашим посетителям может действительно пригодиться! Я имею в виду список новых рассылок, переведенных в категорию серебряных. Не секрет, что когда рассылку переводят в эту категорию, ее рейтинг (в виде количества подписчиков) непременно взлетает. Вольно или невольно мы будем содействовать этому процессу, так как посетители Вашего сайта смогут подписаться на понравившиеся им рассылки прямо, так сказать, не отходя от кассы. Для начала нам потребуется адрес, откуда мы будем грабить информацию. Он такой — http://win.subscribe.ru/catalog/latest Если кого-то не устроит кодировка, подставьте свою. По указанному адресу мы находим все переведенные в категорию серебряных рассылки. Причем список постоянно обновляется, оставаясь таким образом актуальным всегда.


Привожу весь код, пояснения к нему — дальше...

// начало
$link = «http://win.subscribe.ru/catalog/latest»;

$file = @fopen($link, «r»);
if ($file) { $rf = fread($file, 200000); fclose($file); } else { echo «

Извините, запрошенная страница временно не доступна!

»; }

// 1
$rf = trim (chop ($rf));
$s = strpos($rf, « $rf = substr($rf, $s);

// 2
$s = strpos($rf, » $rf = substr($rf, 0, $s);

// 3
$rf = str_replace («/catalog/»,«http://win.subscribe.ru/catalog/», $rf);
$rf = str_replace («/archive/»,«http://win.subscribe.ru/archive/», $rf);
$rf = str_replace («action=/member/quick»,«action=http://win.subscribe.ru/member/quick», $rf);
$rf = str_replace («/img/money2.gif»,«http://win.subscribe.ru/money2.gif», $rf);
$rf = str_replace («/img/a114.gif»,«http://win.subscribe.ru/af.gif», $rf);
$rf = str_replace («/img/af.gif»,«http://win.subscribe.ru/af.gif», $rf);

// 4
echo $rf;
?>

А теперь поехали! В самом начале нам нужно выкачать страничку. Записываем ее адрес и открываем по нему соединение. Далее идет проверка — если соединение успешно, можно считать весь файл (не мудрствуя лукаво указываем 200000 байт для считывания, что явно больше размера открываемого файла), если произошла ошибка открытия, предупреждаем об этом посетителя и выводим ему что угодно, например баннер.

Этап 1.
$rf = trim (chop ($rf)); — этой мудреной комбинацией мы значительно уменьшим объем обрабатываемых данных, так как уберем повторяющиеся пробелы и пробелы в конце и в начале файла. Потом нам нужно определиться с местом, откуда мы будем выводить информацию. Анализ кода дает нам очень эффективный механизм, и мы им непременно воспользуемся.
$s = strpos($rf, « — эта команда позволяет найти номер позиции указанной последовательности символов в строке, куда мы считали весь код файла. Результат помещается в переменную $s
$rf = substr($rf, $s); — жестоко обрезаем все, что находится перед этой комбинацией. В том числе и баннеры, кстати.

Этап2.

Делаем почти тоже самое, но только для конца файла. Файл оказывается обрезан с начала и с конца так, как нам того хочется. Обращаю Ваше внимание, что в данном случае все оказалось очень просто, но иногда приходится применять другие метода для вырезки кода, так как нет столь четких границ. Но почти всегда можно что-то придумать. В результате этой обработки у нас уже есть почти все, что надо. В принципе можно было просто вывести все на экран, но есть один нюанс, который нужно учитывать. Это — ссылки. Они не абсолютные, а относительные. Хорошо хоть, их мало... А в таком случае проблема решается просто.

Этап3.

Берем, и заменяем то, что есть на то, что нам нужно. Например:
$rf = str_replace (»/catalog/«,»http://win.subscribe.ru/catalog/", $rf);
Эта строчка кода позволяет нам заменить во всей строке $rf относительные ссылки на абсолютные. Точно так же поступаем со всеми остальными ссылками, которые встречаются в коде странички. Грубо, но точно...

Этап4.

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

Результат — на экране. Если хотите посмотреть как это все работает в натуре, посетите страницу http://virtual.bresttelecom.by/komputer/ Там есть этот пример, а так же два других, но предлагаю посмотреть на них самим. На сегодня все.

Приходит очень много вопросов по теме установки и настройки РНР и apache. Честно говоря, я сам в этом деле не очень хорошо разбираюсь (в установке под win), но зато могу посоветовать к кому обратиться. http://www.design-studios.ru/php/apache/ Этот сайт и его автор, надеюсь, смогут Вам помочь в нелегком деле настройки. Там выложены самые лучшие и подробные описания, много полезной информации по теме. Пользуйтесь...

 

Интересное

Какая программа для...
Среди систем автоматизированного проектирования большой популярностью пользуется система AutoCAD. Однако иногда пользователь обдумывает вопрос о ее замене на альтернативные программные продукты....
Подробнее...
Мужской стиль
Ни для кого не секрет, что одной из главных черт всех успешных деловых людей является умение хорошо выглядеть. На любых переговорах и встречах, деловой человек будет выглядеть впечатлительно....
Подробнее...
Обзор игровых...
Если ваш стаж общения с компьютерами достаточно велик, то весьма вероятно, что вы помните то знаменательное событие — превращение ПК в мультимедийное устройство. Для России, да и для значительной...
Подробнее...
Ну сколько уж можно...
Можно ли операционную систему не переустанавливать по несколько раз в месяц?Мое однозначное мнение: операционную систему можно не переустанавливать по несольку раз в месяц, и это я собираюсь...
Подробнее...
Система адресации в Интернете
Каждый человек, живущий на Земле, имеет адрес, по которому его в случае необходимости можно разыскать. Думаю, ни у кого не вызовет удивления то, что каждая работающая в Интернете машина также...
Подробнее...
Однофазные стабилизаторы
Однофазные стабилизаторы помогут спасти электроприборы и бытовую технику. Ежегодно, возрастает количество бытовых приборов и офисной техники используемой потребителями. Это делает востребованным...
Подробнее...
Первый прикол на Дельфи....
Привет читатель. Для написания прог-приколов тебе понадобиться комп, Delphi 6 (7 или выше) и руки, желательно прямые. 1 прикол: Голодный CD-Rom Щёлкни мыщью 2 раза по форме и там пиши...
Подробнее...
Руководство по TCP/IP для...
Большинство из нас знает TCP/IP как «клей», связующий Internet. Но не многие способны дать убедительное описание того, что этот протокол представляет собой и как работает. Итак, что же такое...
Подробнее...
Службы Windows ХР
Важную роль в оптимизации производительности Windows XP может сыграть настройка системы служб. Управлять ими можно, вызвав оснастку управления службами через Пуск ->Выполнить-> services.msc....
Подробнее...
Определение наличия...
По статистике, около 90% пользователей в наши дни пользуются Internet Explorer (5-й или 6-й версией). В этих браузерах Flash, как правило, уже установлен (если же нет, то, при наличии...
Подробнее...