Пишем парсер PHP
Очень часто люди ищут в гугле такие запросы как "Пишем парсер PHP", "Простой парсер на PHP" и т.д.
Парсер необходим для таких задач как копирование чужого контента и его последующего отображения на своем сайте.
Сегодня мы рассмотрим работу простейшего парсера на PHP при помощи функции file_get_contents(). Подопытным нашего примера станет блог программиста - xandeadx.ru -> Будем граббить заголовки с ссылками из его главной страницы :)
Итак, поехали!
Открываем сайт xandeadx.ru, открываем исходный код страницы, либо через Firebug (Или другие аналоги, если вы не пользуетесь Firefox)

На изображении видно что все заголовки находятся в теге <h2 class="title">, и еще один момент, у него помимо самих заголовков в <h2> находится еще и ссылка на термин таксономии -> она нам не нужна - с ненужными вещами разберемся при помощи регулярных выражений.
Теперь начинаем писать небольшой и простой код:
// Вся страница сайта находится в переменной $file
// можете сделать print_r($file); и увидете весь сайт :)
$pattern = "/^<h2 class=\"title\">\s→\s(.*)<\/h2>/i";
preg_match_all($pattern, $file, $matches);
// делаем print_r($matches); и тут вы увидите массив с заголовками.
// print implode('<br />', $matches[1]);
В итоге у вас будут обычные ссылки на материалы с его главной страницы, типа:
<a href="/blog/drupal/blablabla">blablabla</a>
При помощи preg_replace() можно добавить необходимые атрибуты или данные в ссылки, например:
// Итог будет такой
// <a rel="nofollow" target="_blank" href="http://xandeadx.ru/blog/drupal/blabla">blabla</a>
Примечания
() - Означают группировку
$1, $2 и т.п - означают backreference, т.е. обратную ссылку с regexp
- Categories:
- heihachi's blog
- Add new comment
- 732 reads

Recent comments
6 days 55 min ago
5 weeks 1 day ago
5 weeks 2 days ago
5 weeks 2 days ago
5 weeks 3 days ago
5 weeks 5 days ago
5 weeks 5 days ago
5 weeks 6 days ago
5 weeks 6 days ago
9 weeks 3 days ago