Advertisement
Guest User

trableWP

a guest
Sep 1st, 2012
14
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.22 KB | None | 0 0
  1. <?php
  2.  
  3. /*Файл который вставляет в БД уже посты*/
  4. include('/var/www/maslov/data/www/viraltop.me/wp-config.php');
  5.  
  6. function getPostsBD1(){
  7.     global $wpdb;
  8.    
  9.     /*функция проверки наличия картинки*/
  10.     function getIsPict($pictUrl){
  11.         global $wpdb;
  12.         $pict = "<img src='".$pictUrl."' alt='интересное в интернете'>";
  13.         $isUnic = $wpdb->get_var($wpdb->prepare("SELECT post_content FROM wp_posts WHERE post_content='$pict'")); //запрос в БД для проверки наличия
  14.         return $isUnic;
  15.     }
  16.    
  17.     function curlFunc($url){
  18.          $ch = curl_init();
  19.             curl_setopt($ch, CURLOPT_HEADER, 0);
  20.             curl_setopt($ch, CURLOPT_URL, $url);
  21.             curl_setopt($ch, CURLOPT_TIMEOUT, 10);
  22.             curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)");
  23.             curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  24.         $result = curl_exec($ch);
  25.         return $result;
  26.         curl_close($ch);
  27.     }
  28.    
  29.     $arrPost = $wpdb->get_results($wpdb->prepare("SELECT * FROM wp_site_for_parse WHERE reit>=1000")); //выбраю ссылки только с рейтингом больше 1000
  30.     if ($arrPost!==''){
  31.     foreach ($arrPost as $pId => $pVal){
  32.         $thisPostID = $pVal->id;
  33.         $thisPostRub = $pVal->rubric;
  34.         $thisPostLink = $pVal->link;
  35.         $thisPostReit = $pVal->reit;
  36.         $linkTo = "http://vk.com/wall-".$thisPostLink;
  37.        
  38.         if (($thisPostRub=='art') or ($thisPostRub=='foto') or ($thisPostRub=='citat')){
  39.        
  40.  
  41.         $result=curlFunc("http://vk.com/wall-".$thisPostLink); //захожу на сайт
  42.        
  43.         /*Определение текста и рубрики*/
  44.         preg_match('#<div class="wall_post_text">(.*?)</div>#si',$result,$arrTEXT);//ищу текст
  45.         $text12 = strip_tags($arrTEXT[0]); //весь текст
  46.         $text = " ".$text12." ";
  47.         //echo $text12;
  48.  
  49.         switch ($thisPostRub){ //присваиваю ID рубрики
  50.             case 'art': $rub=3; break;
  51.             case 'foto': $rub=7; break;
  52.             case 'citat': $rub=5; break;
  53.         }
  54.        
  55.         /*Определение картинок*/
  56.         preg_match_all('#<img src="(.*?)">#si', $result, $pPhoto, PREG_PATTERN_ORDER); //ищу картинки
  57.         //echo $idNewPost;
  58.         $Nphoto='';
  59.         for ($g=1; $g<=6; $g++){
  60.             if (!empty($pPhoto[0][$g])){
  61.                 preg_match('/<img[^>]+src=([\'"])?((?(1).+?|[^\s>]+))(?(1)\1)/',$pPhoto[0][$g],$tPhoto);
  62.                 list($width1, $height1, $type1, $attr1) = getimagesize($tPhoto[2]);
  63.                 if (($width1>100) && (getIsPict($tPhoto[2])=='')){
  64.                     $Nphoto.="<img src='".$tPhoto[2]."' alt='интересное в интернете' />";//картинки записи
  65.                     //echo "<br />".$Nphoto;
  66.                 }
  67.             }
  68.         }
  69.         //sleep(3);
  70.         if (($Nphoto!=='') || ($text!=='')){
  71.            
  72.             //echo $content."<br />";
  73.             /*создаю пост и вставляю все данные*/
  74.             $postTitle = 'Запись '.$thisPostID;
  75.             $InPost = array(
  76.                 'post_title' => $postTitle,
  77.                 'post_excerpt' => $text,               
  78.                 'post_content' => $Nphoto,
  79.                 'post_status' => 'publish',
  80.                 'post_author' => 1,
  81.                 'post_category' => array($rub)
  82.             );
  83.            
  84.             wp_insert_post($InPost); //создаю саму запись
  85.            
  86.             /*Обновляю рейтинг и ссылку*/
  87.             $oldPostArr = $wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->posts WHERE post_title = '$postTitle'"));
  88.             foreach ($oldPostArr as $idOld => $valOld){
  89.                 $idposts = $valOld->ID;
  90.                 /*$oldCintent = $valOld->post_content;
  91.                 $newContent=$oldCintent.$Nphoto;*/
  92.                 /*обновление рейтинга поста*/
  93.                 //'post_excerpt' => $text,
  94.                 $wpdb->update( 'wp_posts',
  95.                     array( 'post_reit' => $thisPostReit, 'link_pars' => $thisPostLink ),
  96.                     array( 'ID' => $idposts )
  97.                 );
  98.             }
  99.             /*конец обновления*/
  100.            
  101.            
  102.             $isPost = $wpdb->get_var($wpdb->prepare("SELECT post_title FROM $wpdb->posts WHERE post_title = '$postTitle'"));
  103.            
  104.             /*если есть ид поста, то удаляю промежуточное значение*/
  105.             if (!empty($isPost)){
  106.                 $wpdb->query("DELETE FROM wp_site_for_parse WHERE id=$thisPostID");
  107.                 echo "<br>Промежуточные данные удалены";
  108.             }
  109.         }
  110.     }
  111.   }
  112.  }
  113.   else {
  114.           exit;
  115.       }
  116. }
  117.  
  118. getPostsBD1();
  119.  
  120. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement