|
| |
|
|
| |
для: cheops
(10.12.2006 в 12:37)
| | | дауж, повременю с этим ( трудно пока, может готовый скрипт найду :) | |
| |
|
|
| |
|
|
| |
для: Panker
(10.12.2006 в 09:51)
| | | Используйте не одно регулярное выражение, а несколько, отдельное для <title>(.*?)</title>, отдельное для <link>(.*?)</link> и т.д. Если выражение срабатывает корректно и возвращает результат - этот фрагмент присутствует, если результата нет - отсутсвует. | |
| |
|
|
| |
|
|
| | допустим на софт тайме
<title>Форум PHP портала SoftTime</title>
<link>http://www.softtime.ru/forum/</link>
<description>Форум PHP портала SoftTime поддерживается авторами нескольких книг по PHP</description> <item>
<title>Sightseeing</title>
<link>http://softtime.ru/forum/readrss.php?id=29082_1</link>
<description>Hi
What are the best countries to go to ?
Thanks a lot</description>
|
или вот на самсунге
<title>Публикации о Samsung Electronics</title>
<link>http://samsung.ru/press/news/</link>
<description></description>
<image>
<url>http://www.samsung.ru/i/samsung_shop.gif</url>
<title>Samsung Electronics</title>
<link>http://samsung.ru</link>
<width>37</width>
<height>13</height>
</image>
|
у меня вопрсо пока не по записе, не по чему то другому!
Интиресует именно как взять всё правельно!
То есть в одно RSS есть описание, в другом нету, то есть мне как делать то ?
Мне нужно в грабилке писать все теги ?
А если нету чего то то писатся не будет?
Как бы я просто......мля запутался...
Смотрите, я граблю допустим так
<?php
Error_Reporting(E_ALL & ~E_NOTICE);
include "config.php";
$text2 = file_get_contents ("http://www.samsung.ru/press/news/news.rss");
if (preg_match_all ("#<item>.*<title>(.*)</title>.*<link>(.*)</link>.*<description>(.*)</description>.*<pubDate>(.*)</pubDate>.*</item>#isU", $text2, $regs))
{
for ($i = 0; $i < count($regs[1]); $i++)
{
$title_rss = iconv("UTF-8", "WINDOWS-1251", trim($regs[1][$i]));
$link_rss = trim ($regs[2][$i]);
$des_rss = iconv("UTF-8", "WINDOWS-1251", trim ($regs[3][$i]));
$pub_rss = trim ($regs[4][$i]);
}
}
for ($i = 0; $i < count($regs[1]); $i++)
{
$title_rss = iconv("UTF-8", "WINDOWS-1251", trim($regs[1][$i]));
$link_rss = trim ($regs[2][$i]);
$des_rss = iconv("UTF-8", "WINDOWS-1251", trim ($regs[3][$i]));
$pub_rss = trim ($regs[4][$i]);
$res = mysql_query ("SELECT COUNT(link) FROM news WHERE link = '$link_rss'");
if(!$res) exit(mysql_error());
$total = mysql_result($res, 0);
echo "$total";
$text2 = file_get_contents ($link_rss);
if (preg_match ('#</noindex></div><h1 class="news"><noindex>.*</noindex></h1>(<p>.*)<br clear="all"><table cellpadding="0" cellspacing="0" border="0" width="610">#isU', $text2, $out))
$text=$out[1];
if($total==0)
{
$query = "INSERT INTO news VALUES ('', '$title_rss', '$des_rss', '$pub_rss', '$link_rss')"; // Здесь следует сформировать запрос под вашу таблицу
mysql_query($query);
}
}
?>
|
а если там где я граблю ВАААЩЕ не будет поля title допустим?
Будет ошибка и запись не произайдёт?
Или всё же просто запишется пустота?
Я бы проверил но я убью день на это и возможно всё равно не его не пойму :)
так же интиерсует - $des_rss = iconv("UTF-8", "WINDOWS-1251", trim ($regs[3][$i]));
А если RSS русская?
То это раскадировка не вопредит работе скрипта? :) | |
| |
|
|
|