Вернуться   Форум SAPE.RU > Общие вопросы > Разработка и сопровождение сайтов

-->
Ответ
 
Опции темы
Старый 20.02.2009, 02:20   #1
Новичок
 
Регистрация: 23.05.2008
Сообщений: 14
Вес репутации: 0
denntl на пути к лучшему
По умолчанию Как убрать в noindex ссылки из rss при выводе на сайте?

Доброго времени суток. Есть источник rss, нужно выводить его на хтмл страничке так, чтоб исходящие ссылки были в noindex, а текст который находится между ссылками попал в индекс Я, кто подскажет как это реализовать? Сам код вывода rss в хтмл уже есть:

PHP код:
 <?php  
/**********************************************************  
 * 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,  
            
$rss_data['link'][$i],  
            
html_entity_decode($rss_data['title'][$i]),  
            
html_entity_decode($rss_data['desc'][$i]),  
            
$rss_data['pubdate'][$i]   //добавлено  
        
);  
    }  
    return 
$temp;  
}  

/**********************************************************  
 * Settings                                               *  
 **********************************************************/  
$url 'http://www.dsnews.com.ua/rss.php';  

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

$pattern '<a href="%s">%s</a><br>%s<br>Date: %s<hr>';  

/**********************************************************  
 * Main script                                            *  
 **********************************************************/  
if ( $xml_data file_get_contents($url) ) {  
    
$rss_data parse_rss($reg_exp$xml_data);  
    echo 
output_rss($pattern$rss_data);  
}  
/**********************************************************  
 * The END                                                *  
 **********************************************************/  
?>
Заранее спасибо.

Добавлено через 53 минуты
Цитата:
Сообщение от denntl Посмотреть сообщение
Доброго времени суток. Есть источник rss, нужно выводить его на хтмл страничке так, чтоб исходящие ссылки были в noindex, а текст который находится между ссылками попал в индекс Я, кто подскажет как это реализовать? Сам код вывода rss в хтмл уже есть:

PHP код:
 <?php  
/**********************************************************  
 * 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,  
            
$rss_data['link'][$i],  
            
html_entity_decode($rss_data['title'][$i]),  
            
html_entity_decode($rss_data['desc'][$i]),  
            
$rss_data['pubdate'][$i]   //добавлено  
        
);  
    }  
    return 
$temp;  
}  

/**********************************************************  
 * Settings                                               *  
 **********************************************************/  
$url 'http://www.dsnews.com.ua/rss.php';  

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

$pattern '<a href="%s">%s</a><br>%s<br>Date: %s<hr>';  

/**********************************************************  
 * Main script                                            *  
 **********************************************************/  
if ( $xml_data file_get_contents($url) ) {  
    
$rss_data parse_rss($reg_exp$xml_data);  
    echo 
output_rss($pattern$rss_data);  
}  
/**********************************************************  
 * The END                                                *  
 **********************************************************/  
?>
Заранее спасибо.

Не нужно, спасибо!

Последний раз редактировалось denntl; 20.02.2009 в 02:20. Причина: Добавлено сообщение
denntl вне форума   Ответить с цитированием
Старый 20.02.2009, 02:33   #2
Специалист
 
Регистрация: 17.04.2008
Сообщений: 187
Вес репутации: 199
DenB скоро станет известен
По умолчанию

Если от ссылок требуется только "нажимабельность", то можно просто и на JS замутить.
$pattern = '<a href="#" onclick="location.href='%s';">%s</a><br>%s<br>Date: %s<hr>';
Ссылка внешней считаться не будет, а кликабельность сохраниться.

Есть и другой вариант - давать ссылку на свой скрипт-редиректор, который будет делать переадресацию по 301:
$pattern = '<a href="redir.php?gotourl='.urlencode(%s).'">%s</a><br>%s<br>Date: %s<hr>';
И в robots.txt прописать
Disallow: redir.php
DenB вне форума   Ответить с цитированием
Старый 20.02.2009, 18:18   #3
Новичок
 
Аватар для 3ton
 
Регистрация: 01.04.2008
Сообщений: 97
Вес репутации: 197
3ton скоро станет известен
По умолчанию

Надо
PHP код:
$pattern '<a href="%s">%s</a><br>%s<br>Date: %s<hr>'
заменить на
PHP код:
$pattern '<noindex><a href="%s">%s</a></noindex><br>%s<br>Date: %s<hr>'
Если конечно эта ссылка имелась ввиду.

Цитата:
Не нужно, спасибо!
Если решение нашли, то могли бы его тут описать. Если вам не нужно, то кому-то другому пригодится.

Добавлено через 2 минуты
DenB, тоже нормальный вариант предложил.

Последний раз редактировалось 3ton; 20.02.2009 в 18:18. Причина: Добавлено сообщение
3ton вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как убрать внешние ссылки в Data Life Astrol Общие вопросы оптимизации 7 24.12.2008 17:32
Оставить ссылки или убрать? 5996682 Яндекс 14 23.12.2008 00:54
Как массово убрать непроиндексированные гуглом ссылки? se7en Вопросы от новичков 11 05.03.2008 09:54
Убрать ссылки от поисковиков... TR#ll Яндекс 5 05.12.2007 22:59
Безболезненно убрать ссылки! Yart Вопросы по работе системы 3 16.10.2007 09:29


Часовой пояс GMT +3, время: 10:03.