Импорт RSS к себе на сайт

Posted by: 3pc   
января 29,
2011

Один из моих сайтов, это городская доска объявлений. Контент на ней хоть и уникальный, но тексты объявлений достаточно короткие, поэтому странички в индекс лезут неохотно. Сайт добавлен в сапу и количество страниц играет достаточно большое значение. Значит нужно прикрутить на странички постоянно обновляющийся контент. Для этих целей была выбрана RSS лента городского новостного портала.

Подавляющее количество найденных мною решений по импорту RSS ленты к себе на сайт, представляют собой java-скрипты. Что меня не устраивало, ведь весь текст выведенный подобным образом не будет проиндексирован поисковыми системами. И через некоторое время поисков, в недрах “сёрча” был найден php-скрипт.

<?php
setlocale(LC_ALL, 'ru_RU.CP1251'); //установка русской локали для даты
/**********************************************************
 * Parse XML data into an array structure                 *
 * Usage: array parse_rss ( string data )                 *
 **********************************************************/
function parse_rss($reg_exp, $xml_data) {
    preg_match_all($reg_exp, $xml_data, $temp);
    return array(
        'count'=>count($temp[0]),
        'title'=>$temp[1],
        'link'=>$temp[2],
        'desc'=>$temp[3],
        'pubdate'=>$temp[4]   //добавлено
    );
} 

/**********************************************************
 * Parse Array data into an HTML structure                *
 * Usage: string parse_rss ( array data )                 *
 **********************************************************/
function output_rss($pattern, $rss_data) {
    $temp = "";
    for($i=0; $i<$rss_data['count']; $i++) {
        $temp .= sprintf($pattern,
        strftime("%d %B %Y %R", strtotime($rss_data['pubdate'][$i])),
            $rss_data['link'][$i],
            html_entity_decode($rss_data['title'][$i]),
            html_entity_decode($rss_data['desc'][$i])
               //добавлено
        );
    }
    return $temp;
} 

/**********************************************************
 * Settings                                               *
 **********************************************************/
$url = 'http://site.ru/rss'; //адрес ленты донора

$reg_exp  = '#<item>.*?<title>(.*?)<\/title>.*?';
$reg_exp .='<link>(.*?)<\/link>.*?<description>';
$reg_exp .='(.*?)<\/description>.*?<pubDate>'; //исправлено
$reg_exp .= '(.*?)<\/pubDate>.*?<\/item>#si';  //добавлено 

$pattern = '<i>%s</i><br><a href="%s"><strong>%s</strong></a><br>%s<br><br>';
//строка форматирования вывода, можно переставить местами поля и добавить теги 

/**********************************************************
 * Main script                                            *
 **********************************************************/
if ( $xml_data = file_get_contents($url) ) {
    // вот так можно -->
    if ( extension_loaded('mb_string') ) {
        $xml_data = mb_convert_encoding($xml_data, "windows-1251", "utf-8");
    } elseif ( extension_loaded('iconv') ) {
        $xml_data = iconv('utf-8', 'windows-1251', $xml_data);
    }
    // <--
    $rss_data = parse_rss($reg_exp, $xml_data);
    echo output_rss($pattern, $rss_data);
}
/**********************************************************
 * The END                                                *
 **********************************************************/
?>

При таком импорте RSS к себе на сайт, выводится результат работы скрипта, а значит эти результаты будут проиндексированы поисковиками, что собственно и требовалось.

Теперь осталось подождать пару апов выдачи Яши и посмотреть, увеличится количество страниц вошедших в индекс или нет.

Похожие записи:

  1. DMOZ Каждый вебмастер и манимейкер знает про DMOZ, самый престижный каталог сайтов. Но к сожалению попасть туда не так уж и...
  2. Что такое SEO? Что такое SEO? SEO – продвижение сайтов в поисковых системах. Совокупность действий, направленных на поднятия сайта в выдаче по определенным...
Эта запись опубликована в Суббота, 29 января, 2011 в 19:42.
Вы можете следить за этой записью через RSS 2.0.
Так же вы можете добавить комментарий, или trackback со своего сайта.

Добавить комментарий

Имя (обязательно)
Mail (обязательно)
URL
Текст комментария