1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
   | <?php
 
 
set_time_limit(0);
 
require_once('resize.php');
require_once('directory.php');
//require_once("db.class.php");
 
$compteur = 1;
while( $compteur < 2) // On utilise un compteur car il y a deux pages de liste de news
{
    $compteur++;
    $url_2 = "http://(...).com/manasp.asp?id=20000".$compteur."&page=1";
    $content_liste_news =  file_get_contents($url_2);  // On ouvre url
    preg_match_all("|http://(...)/News/Detail/.*?\.htm|", $content_liste_news, $url_liste_news); // On récupère la liste des urls
    //connection à la base de donnée
    $link = mysql_connect("(...)", "(...)", "");
    mysql_select_db("(...)",     $link);
    //Pour chaque article, on récupère le titre, la date et le résumé
    foreach($url_liste_news[0] AS $url_news)
    {
         eregi('([0-9]+)-([0-9]+)-([0-9]+)',$url_news,$date_news_test); // on récupère la date qui ce trouve dans l'url et on la traite pour pouvoir travailler dessus
         $date_news = $date_news_test[0];// on réutilisera $date_news plus tard
         $var0 = strlen($date_news_test[2]);
         if( $var0 == 1)
         {    
           $date_news_test[2] = '0'.$date_news_test[2];
         }
         $var1 = strlen($date_news_test[3]);
         if($var1 == 1)
         {    
           $date_news_test[3] = '0'.$date_news_test[3];
      }
      $date_news_test = $date_news_test[1].'-'.$date_news_test[2].'-'.$date_news_test[3];
        $now    = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") - 5, date("Y")));
        if($date_news_test < $now)
        {
            echo "ON NE PREND PAS LES NEWS DE PLUS DE 5 JOURS\n";
            break;
      }
        $content_news    = file_get_contents($url_news);
        eregi('<td height="58" align="center" valign="bottom" class="hangzhoushangchang style9" style="padding:20px 5px 0px 5px"><h1 title="(.*)">.*</h1></td></tr>',$content_news , $titre_news); //on récupère le titre de la news
        $titre_news = $titre_news[1];
        eregi("<h2>(.+)</h2>", $content_news, $resume_news); //on récupère le petit résumé en haut de news
        $resume_news = $resume_news[1];
 
      $titre_news = iconv('gb2312','UTF-8', $titre_news);
      $resume_news = iconv('gb2312','UTF-8', $resume_news);
        // on vérifie que la news n'est pas déjà présente dans la base.
        $reponse    = mysql_query('SELECT id FROM news WHERE titre = "'.$titre_news.'" AND resume = "'.$resume_news.'"');
        $donnees = mysql_num_rows($reponse);
        if ($donnees != 0)
        {
            echo "NEWS DEJA PRESENTE \n";
            continue;
        }
        eregi("http://(...).com/News/Detail/".$date_news."/(.+).htm", $url_news, $id_page);//On récupére le numéro de page de la news
        $id_page = $id_page[1];
 
        preg_match_all("|".$id_page."-[0-9]*|",$content_news, $id_nbrpage); // je cherche le nombre de page de l'article
        $id_nbrpage = array_unique($id_nbrpage[0]); // J'enlève les doublons du tableau.
 
      //echo'<pre>';
      //print_r($id_nbrpage);
        //echo'<pre/>';
 
        //Je cherche la news
        eregi('<table width="600" height="58" border="0" cellpadding="0" cellspacing="0">(.*)<td height="24" align="center" valign="top" class="text11" style="padding-left:30px;padding-right:30px;padding-top:5px;letter-spacing:1px;line-height:18px; height:auto;border-top:#cdcdcd 1px dotted"><span class="small_title">', $content_news, $news);
      $news = $news[1];
        // echo 'Strlen news avant : '.strlen($news).'<br>';
        if($id_nbrpage != '') //si l'article à d'autre(s) page(s) alors...
        {
           //  echo 'Nombre de page: '.count($id_nbrpage).'<br/>'; 
            foreach($id_nbrpage AS $id_nbrpage2)//... pour chaque page, on l'ouvre et cherche la news
            {
                $url = "http://content.chinasspp.com/News/Detail/".$date_news."/".$id_nbrpage2.".htm";
                //    echo $url.'<br/>';
                $content = file_get_contents($url);
 
                // On cherche la suite de la news que l'on va concaténer avec le début de la news
                eregi('<table width="600" height="58" border="0" cellpadding="0" cellspacing="0">(.*)<td height="24" align="center" valign="top" class="text11" style="padding-left:30px;padding-right:30px;padding-top:5px;letter-spacing:1px;line-height:18px; height:auto;border-top:#cdcdcd 1px dotted"><span class="small_title">', $content, $news_suite);
                $news_suite = $news_suite[1];             
                $news .= $news_suite;    
          }
        }
        //on change le jeu de caractère de la chaine pour que le navigateur affiche correctement le texte.
      $news = iconv('gb2312','UTF-8', $news); 
      //On enlève des info en fin d'article qui nous interesse pas
        $news = str_replace('border=0','', $news);
        preg_match_all('|<td height="25" align="center" valign="middle" class="small_title">.*?<br><br><\/td>|',$news, $var_del);
        $news = str_replace($var_del[0],'', $news); 
        preg_match_all('|<td height="24" valign="top".*?</a></span></td>|',$news, $var_del2);     
        $news = str_replace($var_del2[0],'', $news);
        //on enlève toutes les balises sauf <img>
        $news = (strip_tags($news, '<img>')); 
        $news = str_replace(' ','',$news);
        $news    = '<p style="text-align: justify;">'.$news.'</p>';
        $news = addslashes($news);
        $titre_news = addslashes($titre_news);
    $resume_news = addslashes($resume_news);
 
        //Allez maintenant occupons nous des images.
        preg_match_all('|http://(...).com/News/pic/([0-9]+)\.(.{3})|',$news,$tab_image_news);
        $nbr_image = count($tab_image_news[0]);
        if ($nbr_image != 0)
        {
            create_dir('...:/.../.../.../image/'.$date_news_test.'/');
            for ($i = 0; $i < $nbr_image ;  $i++)
          {
              resizeImg($tab_image_news[0][$i], 500, 5000, $tab_image_news[1][$i], 'C.../.../.../.../image/'.$date_news_test.'/');
              $news = str_replace($tab_image_news[0][$i],'...:/.../.../.../image/'.$date_news_test.'/'.$tab_image_news[1][$i],$news);
            }
        }        
        echo'<pre>';
        print_r($news);
         echo'<pre/>';
         $reponse = mysql_query("INSERT INTO news (id, titre, resume, texte) VALUES ('','".$titre_news."','".$resume_news."','".$news."' )");
        echo mysql_error($link) ; 
    }
}    
?> |