Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Парсинг RSS - simplexml_load_file
 
 автор: ZetRider   (06.04.2012 в 14:58)   письмо автору
 
 

Добрый день,
понадобилось для сайта сделать простенький парсинг новостей. В общем то все работает, но слишком долго получаю данные от другого сайта.

Пишу функцию:


<?php
function rss_archive($xml='') {
    if(
$xml != '') {
        
$i 1;
        
$rss simplexml_load_file($xml);
        foreach (
$rss->channel->item as $item) {
            if(
$i <= 5) {
?>
                <div class="sidebar_block">
                    <div class="date"><?php echo date("d.m.Y",strtotime($item->pubDate)); ?></div>
                    <a href="<?php echo $item->link?>" title="<?php echo $item->title?>" target="_blank"><?php echo $item->title?></a><br>
                    <?php echo mb_substr($item->description,0,100,'UTF-8').'...'?>
                </div>
<?php
            
}
            
$i++;
        }

    }
}
?>


Думаю как же правильнее сделать "кеширование данных", или вернее проверку на необходимость загрузить файл заново.

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

  Ответить  
 
 автор: Lotanaen   (06.04.2012 в 15:33)   письмо автору
 
   для: ZetRider   (06.04.2012 в 14:58)
 

а БД нельзя использовать?

  Ответить  
 
 автор: ZetRider   (06.04.2012 в 15:41)   письмо автору
 
   для: Lotanaen   (06.04.2012 в 15:33)
 

можно, думаю даже нужно
какой принцип работы проверки должен быть?

  Ответить  
 
 автор: Lotanaen   (06.04.2012 в 15:46)   письмо автору
 
   для: ZetRider   (06.04.2012 в 15:41)
 

а как часто новостной канал обновлять нужно на сайте?

  Ответить  
 
 автор: ZetRider   (06.04.2012 в 15:51)   письмо автору
 
   для: Lotanaen   (06.04.2012 в 15:46)
 

думаю 2-3 раза в день, к примеру
в 9 утра
в 14.00
и вечером 19.00

Смотря какой способ меньше ест ресурсов. можно и 1 раз в день по утрам

  Ответить  
 
 автор: Lotanaen   (06.04.2012 в 15:53)   письмо автору
 
   для: ZetRider   (06.04.2012 в 15:51)
 

ну поставьте парсинг на крон и заносите в БД, а на страничках уже из БД выводите новости

  Ответить  
 
 автор: ZetRider   (06.04.2012 в 15:57)   письмо автору
 
   для: Lotanaen   (06.04.2012 в 15:53)
 

пришло время поработать с cron.
Это видимо самый простой и лучший вариант?

  Ответить  
 
 автор: Lotanaen   (06.04.2012 в 16:10)   письмо автору
 
   для: ZetRider   (06.04.2012 в 15:57)
 

ну да, зачем тормозить выдачу странички пользователю? а так у вас все новости в базе будут храниться - можно архив новостей, например, сделать или что-то в этом роде

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования