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


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


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


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

С аудиограбберами знакомы все. Нам предстоит сделать свой собственный граббер информации из Интернета. Нам понадобится подопытный кролик, на роль которого я предлагаю выбрать сайт 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/ Этот сайт и его автор, надеюсь, смогут Вам помочь в нелегком деле настройки. Там выложены самые лучшие и подробные описания, много полезной информации по теме. Пользуйтесь...

 

Интересное

Взаимодействие с чужими окнами
Представьте себе, глупый пользователь сидит как ни в чём небывало с умным видом уже в какой раз пытается составить документ в Microsoft Word'e, но вдруг окно начинает бешено скакать по экрану, в...
Подробнее...
Средства восстановления...
Чтобы ни говорили про повышенную надежность Windows 2000/ХР, иногда она все же подводит. Правда, по сравнению со своими предшественницами Windows 9x/Me это случается гораздо реже. А поскольку...
Подробнее...
Перенаправление stdout в...
Для перенаправления stdout в область памяти (или файл) необходимо написать небольшую конструкцию.Редирект в память или строку (std::string)
Подробнее...
Основные требования к...
Простота логотипа, товарного знака предполагает отсутствие в нем большого количества переплетающихся, сложных линий, мелких подробных деталей и т.п. Она облегчает восприятие и запоминание знака, а...
Подробнее...
Assembler. Введение
Микропроцессоры корпорации Intel и персональные компьютеры на их базе прошли не очень длинный во времени, но значительный по существу путь развития, на протяжении которого кардинально изменялись и...
Подробнее...
Ошибки Windows!
Каждый хочет знать когда на экране его выскакивает ошибка с чем она связана!Код ошибки: 0 (0x0000)Операция выполнена успешно.Код ошибки: 1 (0x0001)Неверная функция.Код ошибки: 2 (0x0002)Системе не...
Подробнее...
Массовое удаление...
Нередко для повышения производительности компьютера (например, перед запуском ресурсоемкого приложения или игрушки) приходится прибегать к нетривиальному, но действенному методу — к...
Подробнее...
Однофазные стабилизаторы
Однофазные стабилизаторы помогут спасти электроприборы и бытовую технику. Ежегодно, возрастает количество бытовых приборов и офисной техники используемой потребителями. Это делает востребованным...
Подробнее...
Отдых
Отпуск: как не пожалеть о потраченном времени Для большинства людей отпуск – желанное и долгожданное событие, к тому же длится он сравнительно недолго, что делает его еще более ценным....
Подробнее...
Как сгенерировать файл...
Рано или поздно любой веб-мастер сталкивается с необходимостью защиты своего сайта, более тонкой настройки доступа к различным его параметрам. Один из вариантов — использовать специальный...
Подробнее...