Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Направте на путь истенный
Форумы портала PHP.SU » PHP » Программирование на PHP » Направте на путь истенный

Страниц (1): [1]
 

1. housewm - 16 Декабря, 2013 - 12:34:10 - перейти к сообщению
Вот пытаюсь сделать граббер небольшой

Суть граббера: есть сайт доска объявлений там постоянно добавляются новые сообщения.

Мне нужно забирать эти новые сообщения и выводить у себя на страничке (как бы лента новостей).

На страничке вывожу с помощью Ajax. В скрипте сделал таймер чтоб он каждые n сек забирал сообщения с помощью php граббера, и добавлял его в список.

Но так как нет ни какой проверки на совпадения он постоянно гонит дубли пока не появится новое сообщение на сайте доноре.

Вопрос вот в чем: как организовать проверку нового сообщения с тем что есть уже, и соответственно если новое совподает со старым то его не записываем, а если не совподает то записываем.

Никак не могу понять где проверку делать в php или в j.

И как ее правильно организовать.

Это файл PHP

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3.  
  4.  
  5. include 'simple_html_dom.php';
  6. $html = file_get_html('url');
  7.  
  8. $e = $html->find('ul#srchrslt-adtable', 0)->find('li', 0);
  9.  
  10.  
  11.  
  12. foreach ($e->find('h3') as $h3) {
  13.         foreach ($h3->find('a') as $a) {
  14.  
  15.         $t= "<li><div style='width: 600px; padding:20px;border:1px solid #cccccc; margin-bottom:20px'> <a href='url".$a->href."'>".$a->plaintext."</a></div></li>";
  16.                
  17.                  
  18.         }
  19. }
  20.  
  21.  
  22. ?>
  23. <html>
  24.         <body><?echo $t; ?></body>
  25. </html>
  26.  


Это ajax
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <html>
  3.         <head>
  4.                 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"  type="text/javascript"></script>
  5.         </head>
  6.         <body>
  7.  
  8.                 <script type="text/javascript">
  9.  
  10.                 setInterval(function() {
  11.                        
  12.    var value = 0;
  13.                 $.ajax({
  14.                         url: 'php.php',
  15.                         cache: false,
  16.                         success: function(data) {
  17.                         $('.result').append('<li>'+data+'</li>');
  18.                        
  19.                         }
  20. });
  21.  
  22. }, 5000);
  23.  
  24. </script>
  25. <ul class="result"></ul>
  26.         </body>
  27. </html>
  28.  
2. Toxa - 16 Декабря, 2013 - 13:16:30 - перейти к сообщению
- Создать таблицу в БД под нужные данные
- Парсить сайт по таймауту (cron) с проверкой уже добавленных значений
- Выводить у себя в каком-угодно виде с помощью ajax или без
3. housewm - 16 Декабря, 2013 - 13:29:18 - перейти к сообщению
а можно ли какнибудь обойтись без БД?
4. Toxa - 16 Декабря, 2013 - 14:07:16 - перейти к сообщению
Можно хранить в сессии массив всех записей и проверять их наличие соответственно, чтобы избежать дубликатов. Но этот вариант очень кривой и обычно так не делают
5. housewm - 16 Декабря, 2013 - 14:21:14 - перейти к сообщению
спасибо, буду через БД тогда делать

 

Powered by ExBB FM 1.0 RC1