Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> импортируем rss в чваю бд 
V
    Опции темы
Slauta
  Дата 18.1.2010, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Оторванный от жизни
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 14.5.2009
Где: Солигорск

Репутация: нет
Всего: нет



Собственно хочу установить у себя на сайте rrs импорт с другого.
Надо чтобы автоматически, два раза в день, ко мне в бд (что бы долго страницы не грузило) записывалась: заголовок и ссылка....
Так вот, как это реализовать?


Как записывать в бд я знаю... Думаю проблем с извлечением не будет... Нужно что бы это делалась автоматически...

Заранее благодарю...
--------------------
Хм...
PM MAIL WWW ICQ Skype   Вверх
Serkys
Дата 19.1.2010, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: 4
Всего: 22



Автоматически запускает скрипт Cron.
RSS можно парсить как обычный XML, при помощи SimpleXML.
PM MAIL   Вверх
Slauta
Дата 19.1.2010, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Оторванный от жизни
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 14.5.2009
Где: Солигорск

Репутация: нет
Всего: нет



Цитата(Serkys @  19.1.2010,  11:14 Найти цитируемый пост)
Автоматически запускает скрипт Cron.
RSS можно парсить как обычный XML, при помощи SimpleXML. 

Я вообще в этом ноль... может какой то пример есть?

--------------------
Хм...
PM MAIL WWW ICQ Skype   Вверх
lelik133
Дата 19.1.2010, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 517
Регистрация: 5.2.2003
Где: Москва

Репутация: 5
Всего: 14



http://ru2.php.net/manual/en/function.simp...l-load-file.php
в комментариях  есть пример парсинга rss
PM ICQ   Вверх
Slauta
Дата 19.1.2010, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Оторванный от жизни
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 14.5.2009
Где: Солигорск

Репутация: нет
Всего: нет



Это?
Код

<?php

function get_rss_items($searchkeywords) {
    // define url
    $url = "http://some.wordpress.blog.com/feed/?s=" . urlencode($searchkeywords) . "&submit=";
   
    // retrieve search results
    if($xml = simplexml_load_file($url, 'SimpleXMLElement', LIBXML_NOCDATA)) {
        $result["title"]   = $xml->xpath("/rss/channel/item/title");
        $result["link"]    = $xml->xpath("/rss/channel/item/link");
        $result["content"] = $xml->xpath("/rss/channel/item/content:encoded/text()");

        foreach($result as $key => $attribute) {
            $i=0;
            foreach($attribute as $element) {
                $ret[$i][$key] = (string)$element;
                $i++;
            }
        }   
        return $ret;   
    } else
        return false;   
}

?>

Если да то как оно работает? и как сделать чтобы оно запускалась 2 раза в день?
--------------------
Хм...
PM MAIL WWW ICQ Skype   Вверх
Slauta
Дата 19.1.2010, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Оторванный от жизни
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 14.5.2009
Где: Солигорск

Репутация: нет
Всего: нет



Что то нагуглил... только она у меня не работает почему то....
Код

<?php
function startelement($parser, $name, $attrs) {
global $tag, $rss;
if ($name == 'rss')
$rss = '^rss';
elseif ($name == 'rdf:rdf')
$rss = '^rdf:rdf';
$tag .= '^' . $name;
}
function endelement($parser, $name) {
global $tag;
global $itemcount, $items;
if ($name == 'item') {
$itemcount++;
if (!isset($items[$itemcount])) $items[$itemcount] = array('title' => '', 'link' => '', 'desc' => '', 'pubdate' => '');
}
$tag = substr($tag, 0, strrpos($tag, '^'));
}
function characterdata($parser, $data) {
global $tag, $chantitle, $chanlink, $chandesc, $rss, $imgtitle, $imglink, $imgurl;
global $items, $itemcount;
$rsschannel = '';
if ($data) {
if ($tag == $rss . '^channel^title') {
$chantitle .= $data;
} elseif ($tag == $rss . '^channel^link') {
$chanlink .= $data;
} elseif ($tag == $rss . '^channel^description') {
$chandesc .= $data;
}
if ($rss == '^rss') $rsschannel = '^channel';
if ($tag == $rss . $rsschannel . '^item^title') {
$items[$itemcount]['title'] .= $data;
} elseif ($tag == $rss . $rsschannel . '^item^link') {
$items[$itemcount]['link'] .= $data;
} elseif ($tag == $rss . $rsschannel . '^item^description') {
$items[$itemcount]['desc'] .= $data;
} elseif ($tag == $rss . $rsschannel . '^item^pubdate') {
$items[$itemcount]['pubdate'] .= $data;
} elseif ($tag == $rss . $rsschannel . '^image^title') {
$imgtitle .= $data;
} elseif ($tag == $rss . $rsschannel . '^image^link') {
$imglink .= $data;
} elseif ($tag == $rss . $rsschannel . '^image^url') {
$imgurl .= $data;
}
}
}
function parserss($url) {
global $tag, $chantitle, $chanlink, $chandesc, $rss, $items, $itemcount, $imgtitle, $imglink, $imgurl;
$chantitle = '';
$chanlink = '';
$chandesc = '';
$imgtitle = '';
$imglink = '';
$imgurl = '';
$tag = '';
$rss = '';
global $items, $itemcount;
$itemcount = 0;
$items = array(0 => array('title' => '', 'link' => '', 'desc' => '', 'pubdate' => ''));
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startelement", "endelement");
xml_set_character_data_handler($xml_parser, "characterdata");
@$fp = fopen($url, "r");
$data = "";
while (true) {
@$datas = fread($fp, 4096);
if (strlen($datas) == 0) {
break;
}
$data .= $datas;
}
@fclose($fp);
if ($data != '') {
$xmlresult = xml_parse($xml_parser, $data);
$xmlerror = xml_error_string(xml_get_error_code($xml_parser));
$xmlcrtline = xml_get_current_line_number($xml_parser);
if ($xmlresult)
displaydata();
else
print("error parsing this feed !<br />error: $xmlerror , at line: $xmlcrtline");
} else {
print("error while retriving feed $url");
}
xml_parser_free($xml_parser);
}
function displaydata() {
global $chantitle, $chanlink, $chandesc, $rss, $items, $itemcount, $imgtitle, $imglink, $imgurl;
global $items, $itemcount;
?>
<html><head><title><?= $chantitle ?></title></head>
<body>
<div>
<a href="<?= $chanlink ?>"><img src="<?= $imgurl ?>" alt="<?= $imgtitle ?>" border="0" /></a>
<h1><?= $chantitle ?></h1>
<h3><?= $chandesc ?></h3>
</div>
<hr />
<?php
for($i = 0;$i < count($items)-1;$i++) {
echo "<h4>".$items[$i]['title']."</h4>";
echo "<h5>".$items[$i]['pubdate']."</h5>";
echo "<a href='".$items[$i]['link']."'>".$items[$i]['desc']."</a>";
}
?>
</body></html>
<?php }
$url="http://www.gametech.ru/export/articles_pc.rss";
parserss($url);
#echo $url;
?>

--------------------
Хм...
PM MAIL WWW ICQ Skype   Вверх
lelik133
Дата 20.1.2010, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 517
Регистрация: 5.2.2003
Где: Москва

Репутация: 5
Всего: 14



Цитата

Если да то как оно работает? и как сделать чтобы оно запускалась 2 раза в день? 

а попробовать запустить и понять как работает нельзя?
запуск по расписание, cron для *nix систем

Цитата

Что то нагуглил... только она у меня не работает почему то....

и как по такой диагностике понять почему же она не работает? Какие ошибки?
PM ICQ   Вверх
Ипатьев
Дата 20.1.2010, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Цитата(Slauta @  18.1.2010,  19:09 Найти цитируемый пост)
Надо чтобы автоматически, два раза в день, ко мне в бд (что бы долго страницы не грузило) записывалась: заголовок и ссылка....
Так вот, как это реализовать?

Я думаю, что на фрпланс разделе винграда найдется человек, который это сделает рублей за 1000, может, меньше.
PM MAIL   Вверх
Slauta
Дата 20.1.2010, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Оторванный от жизни
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 14.5.2009
Где: Солигорск

Репутация: нет
Всего: нет



Цитата(lelik133 @  20.1.2010,  09:26 Найти цитируемый пост)
и как по такой диагностике понять почему же она не работает? Какие ошибки? 


Код

error while retriving feed http://www.gametech.ru/export/articles_pc.rss



Цитата(Ипатьев @  20.1.2010,  10:43 Найти цитируемый пост)
Я думаю, что на фрпланс разделе винграда найдется человек, который это сделает рублей за 1000, может, меньше. 

Я ещё не работаю... Тем более для нас это существенные деньги (=100 тыс. br).. студенты в два раза меньше получают...

Это сообщение отредактировал(а) Slauta - 20.1.2010, 15:19
--------------------
Хм...
PM MAIL WWW ICQ Skype   Вверх
Slauta
Дата 21.1.2010, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Оторванный от жизни
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 14.5.2009
Где: Солигорск

Репутация: нет
Всего: нет



Все ясн... Спасибо... Я решил проблему...
--------------------
Хм...
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1148 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.