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

Форум Регулярные Выражения

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Разбор RSS-новостей Samsung.ru

Сообщения:  [1-10]    [11-20]  [21-28] 

 
 автор: Panker   (23.10.2006 в 12:48)   письмо автору
 
   для: cheops   (23.10.2006 в 12:28)
 

дауж :( что то я запутался, да там и не трудно запутатся :( всё как то через .... делал вот и запутался :)

большое спасибо всё хорошо работает :)

   
 
 автор: cheops   (23.10.2006 в 12:28)   письмо автору
 
   для: Panker   (23.10.2006 в 08:27)
 

Следует изменить INSERT-запрос
<?php
$query 
"INSERT INTO news VALUES ('', '$title_rss', '$des_rss', '$pub_rss', '$link_rss')";
?>

таким образом, чтобы в последнем поле была дата, а URL в переменной $link_rss - ложился на своё место, а не поле date.

   
 
 автор: Panker   (23.10.2006 в 08:27)   письмо автору
 
   для: cheops   (23.10.2006 в 02:34)
 

чёт я нечё не понел :)
что делать то ? :)
что то перекладывать или как))

   
 
 автор: cheops   (23.10.2006 в 02:34)   письмо автору
 
   для: Panker   (22.10.2006 в 17:41)
 

Хм... у вас странно вставляется запись в таблицу news, поле link у вас предпоследнее, а вставляете вы $link_rss в последнее поле, поэтому скрипт и не находит старый URL, так как он ложиться в соседнее поле.

   
 
 автор: cheops   (23.10.2006 в 02:31)   письмо автору
 
   для: Panker   (22.10.2006 в 17:41)
 

>десять нвоостей в данный момент там :(
0 означает, что новости в данный момент нет, т.е. имеется ввиду, что 0 выводится даже после того, как новостная позиция добавлена в базу данных?

   
 
 автор: Panker   (22.10.2006 в 17:41)   письмо автору
 
   для: cheops   (22.10.2006 в 14:35)
 

простите

делал вроде точней сделал вроде бы всё правельно!

полный код ниже представлю, сначала расскауж :)
Вроде бы сделано всё ок НО ВСЕГДА ВЫВОДИТСЯ НОЛЬ!
Проверил вывести перед проверкой ССЫЛКИ типа echo "$rss_link"; все ссылки вывелись, дальше сверяю как вы показали, и всегда выводится десять нулей, ну типа десять нвоостей в данный момент там :(

отд код, что не так?


<?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($res0); 
    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); 
    } 
    }
?>


малоли, вот таблица моя

CREATE TABLE `news` (
  `id` int(11) NOT NULL auto_increment,
  `title` text NOT NULL,
  `text` text NOT NULL,
  `link` text NOT NULL,
  `data` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

-- 
-- Дамп данных таблицы `news`
-- 

        

   
 
 автор: cheops   (22.10.2006 в 14:35)   письмо автору
 
   для: Panker   (22.10.2006 в 13:26)
 

У вас URL будет известен за ранее, поэтому запрос должен выглядеть следующим образом
<?php
  $res 
mysql_query ("SELECT COUNT(link) FROM news WHERE link = '$link'");
  if(!
$res) exit(mysql_error());
  
$total mysql_result($res0);
?>

Если $total = 0 - такой записи нет, если $total = 1, такая запись уже существует и вставлять её повторно не следует.

   
 
 автор: Panker   (22.10.2006 в 13:26)   письмо автору
 
   для: cheops   (22.10.2006 в 12:22)
 

мона проверить есть ли это или нет, ну эт вы сказали выше :) я прсото хочу просить -

вот тут я првоеряю уникальных посетителей

$res = mysql_query ("SELECT COUNT(DISTINCT s_ip) FROM stat_user");


вот по такому принципу проверять поля урл?
или как?
и если по такому то вот так вот нормально ?
- $res = mysql_query ("SELECT COUNT(DISTINCT link) FROM news"); - тут будет проверятся уникальная ссылка? :(
и если да то это всё в иф засунуть ?

   
 
 автор: cheops   (22.10.2006 в 12:22)   письмо автору
 
   для: Panker   (20.10.2006 в 18:31)
 

Судя по всему в RSS используется уникальный URL перед добавлением можно проверять нет ли записи с таким URL в таблице tbl, если такой записи нет - добавлять новую, если есть - не добавлять. Для проверки можно осуществлять отдельный SELECT-запрос, а можно проиндексировать поле URL, создав уникальный индекс. Тогда запись с уже существующим URL не будет добавляться автоматически. Только индексировать придётся по всему полю, так как изменения в URL наблюдаются в конце URL.

   
 
 автор: Panker   (22.10.2006 в 09:13)   письмо автору
 
   для: Panker   (21.10.2006 в 22:45)
 

аушки :) так как мне сравнить что бы не записовалось :(

   

Сообщения:  [1-10]    [11-20]  [21-28] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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