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


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


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


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

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

 

Интересное

Сравнение жизни с игрой
Никто не задумывался о том, что жизнь можно считать игрой? По крайней мере, всё идёт по тому же сценарию, что и игры. Когда человек рождается, он получает определённые навыки и умения, которые...
Подробнее...
Delphi и Flash. Совмещение...
Разве возможно совместить Флэш-ролики и Дельфи-приложения. Раньше я думал что НЕТ. Но теперь я знаю не только, что это возможно, но и знаю как это делается!!! И сейчас я вам расскажу об этом....
Подробнее...
Загрузчик операционной системы
В этой области данных жесткого диска должен быть расположен небольшой код загрузчика, назначение которого состоит только в том, чтобы передать управление дальше. Этот код передает управление в...
Подробнее...
Звук в Linux
Под звуковой подсистемой понимается инфраструктура операционной системы, отвечающая за работу установленных в компьютере устройств для обработки звуки, а именно звуковых карт, а также различных...
Подробнее...
Пошаговое руководство по...
В этом пошаговом руководстве представлены инструкции по балансировке сетевой нагрузки (Network Load Balancing, NLB) в среде служб терминалов, что позволяет получить такие преимущества, как...
Подробнее...
10 причин медленной работы...
Пользователи редко жалуются на работу новых ПК. Немудрено, ведь и система, и программы запускаются мгновенно. Однако со временем они начинают замечать, что система работает всё медленнее и с...
Подробнее...
Куда идет Windows?
ВведениеНравится это или нет, но Microsoft Windows применяется практически повсеместно. Свыше 90 процентов настольных и портативных компьютеров работают под управлением Windows. В течение двух...
Подробнее...
SSI - что, когда, как?
Основным, простейшим, но в то же время чрезвычайно мощным инструментом поддержки больших наборов документов является SSI (Server-Side Includes — включения на стороне сервера). Если кто-то из...
Подробнее...
Система автоматизации
Главными критериями успеха любого заведения, в частности ресторана, бара или кафе, являются: хорошая кухня, продуманный стиль, отличный сервис, и, обязательно, оперативная работа персонала с...
Подробнее...
Однофазные стабилизаторы
Однофазные стабилизаторы помогут спасти электроприборы и бытовую технику. Ежегодно, возрастает количество бытовых приборов и офисной техники используемой потребителями. Это делает востребованным...
Подробнее...