Парсинг контента в wordpress

Часто бывает необходимым добавить к себе на сайт какую-то динамическую информацию с другого источника (погодные виджеты, котировки валют и т.п.). Я лично думал, что для этой цели потребуется глубокое знание php. Однако на каком-то источнике (к сожалению, не помню сайт) нашел отличный способ, состоящий из нескольких строк кода. Для понимания этого кода глубоких знаний php вам не нужно. Достаточно подставить свои данные и на вашем сайте появится информация из другого источника. Создаем в корне сайта файл с произвольным названием, например, file.php и добавляем в него следующий php-код:

 <?php
 // с кодировкой возможны проблемы, поэтому если вдруг появятся каркозябры, попробуйте добавить следующую строчку кода 
        header('Content-Type: text/html; charset=windows-1251');
 
 // сторонняя страница сайта, с которой будем брать контент. 
 $content = file_get_contents('http://site.ru/page');
 
 // определяем начало необходимого фрагмента кода, до которого мы удалим весь контент
 $pos = strpos($content, '<div class="start"><span class="needed-text">');
 
 // удаляем все до нужного фрагмента
 $content = substr($content, $pos);
 
 // находим конец необходимого фрагмента кода
 $pos = strpos($content, '</span></div>');
 
 // отрезаем нужное количество символов от конца фрагмента
 $content = substr($content, 0, $pos);
 
    //если в нужном контенте встречается не нужный кусок текста, то его вырезаем
    $content = str_replace('текст, который нужно вырезать','', $content); 
 
 // выводим необходимый контент
 echo $content;
?> 

Вместо:
‘http://site.ru/page’ — страница сайта, откуда нужно взять контент
‘<div class=»start»><span class=»needed-text»>’ — заменить на фрагмент кода, откуда начинается необходимый контент
‘</span></div>’ — заменить на фрагмент кода, где заканчивается нужный контент

Например, если нужный контент лежит в конструкции <div class=»start»><span class=»needed-text»>, а заканчивается фрагмент конструкцией </span></div>, то вставляем в наш php-код эти значения, соответственно. 

В адресной строке браузера запускаем данный файл (http://my-site.ru/file.php) и если все сделано правильно, на странице будет выведен контент со стороннего сайта.

Для того, чтобы добавить этот контент на внутреннюю страницу нашего сайта, то добавляем в нее (внутреннюю страницу) следующий код:

 <?
    $content = file_get_contents('http://my-site.ru/file.php');
    echo $content;
?> 

Я в php далеко не знаток, но у меня все получилось. Надеюсь, что и у вас пройдет все без проблем. Спасибо за материал «Блого-дарю».

Следующая запись
Невидимая защита от спама
Меню