Advertisement
zero50x

Добавление в БД статей

Oct 25th, 2017
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.37 KB | None | 0 0
  1. <?php
  2. $title = 'Парсер URL последних постов в группе';
  3.  
  4. /* */
  5. include_once DIR.'/template/header.php';
  6.  
  7.  
  8. // Доступ к БД
  9. $host = 'localhost';
  10. $db =   'ыфваыфваыфавыфваыфав';    // имя базы
  11. $charset = 'utf8';
  12. $user = 'фываыфваыфва';  //  имя юзера
  13. $pass = 'фыавфывафываыф';    //  пароль юзера
  14.  
  15. // Подключение к БД PDO
  16. $dsn = "mysql:host=$host;dbname=$db;charset=$charset";
  17. $opt = array(
  18.     PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
  19.     PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
  20. );
  21.  
  22. try {
  23.   $pdo = new PDO($dsn, $user, $pass, $opt);
  24. }
  25. catch( PDOException $Exception ) {
  26.   //echo $Exception->getMessage();
  27.   //echo $Exception->getCode();
  28.   if(!empty($Exception->getCode())){
  29.     die('Ошибка соединения с БД');
  30.   }
  31. }
  32.  
  33.  
  34. $st = $pdo->prepare(' SELECT COUNT(*) FROM `title` ');
  35. $st->execute();
  36. $WaitIndex = $st->fetchAll();
  37.  
  38.  
  39. //echo "<pre>РЕЗ "; var_dump($WaitIndex); echo "</pre>";
  40.  
  41.  
  42. if(isset($_POST['add'])) {
  43.     $text = trim($_POST['text']);
  44.     $zam = str_replace("\n", "~", $text);
  45.     $zam = preg_replace('/\~[^а-яёa-z0-9~]{1,}\~/ism', '~~', $zam);
  46.  
  47.     $firstBlock = preg_split('/[=]{3,}/', $zam, -1, PREG_SPLIT_NO_EMPTY);
  48.  
  49.     // Цикл статей по =================
  50.       for ($i = 0; $i < count($firstBlock); $i++) {
  51.         $txt = trim($firstBlock[$i]);
  52.         $zed = explode('~~', $txt);
  53.  
  54.         if($i === 0){
  55.             $add = 1;
  56.             $LastId = 0;
  57.         }
  58.  
  59.         if($add === 1 && strlen($zed[0] < 320)){
  60.           $header = trim($zed[0]);
  61.           $b=$pdo->prepare(" INSERT INTO `title` SET `header`=:header");
  62.           $b->bindParam(":header",$header);
  63.           $b->execute();
  64.           $AddId = $pdo->lastInsertId();
  65.           $LastId = $AddId;
  66.  
  67.           echo "LastId = $LastId<br>";
  68.  
  69.           unset($zed[0]);
  70.           $add = 0;
  71.         }
  72.  
  73.         $chunk = array_chunk($zed, 2);
  74.  
  75.         // Цикл внутри одной статьи по её частям
  76.         for ($j = 0; $j < count($chunk); $j++) {
  77.  
  78.           $subheader = trim($chunk[$j][0]);
  79.           $subtxt = trim($chunk[$j][1]);
  80.           $long = strlen($chunk[$j][1]);
  81.  
  82.           if($LastId !== 0){
  83.             $b=$pdo->prepare(" INSERT INTO `block` SET `tid`=:tid, `strlen`=:strlen, `subhead`=:subhead, `text`=:text ");
  84.             $b->bindParam(":tid",$LastId);
  85.             $b->bindParam(":strlen",$long);
  86.             $b->bindParam(":subhead",$subheader);
  87.             $b->bindParam(":text",$subtxt);
  88.             $b->execute();
  89.           }
  90.  
  91.  
  92.         }
  93.  
  94.         //echo "<pre>ЧАНК  "; var_dump($chunk); echo "</pre>";
  95.  
  96.         //echo "<pre>ZED  "; var_dump($zed); echo "</pre>";
  97.         //echo "<pre>ЧАСТЬ2  "; var_dump($v2); echo "</pre>";
  98.       }
  99.  
  100.     //echo "<pre>"; var_dump($zam); echo "</pre>";
  101.  
  102. }
  103.  
  104. ?>
  105.  
  106. <form action="" method="POST">
  107.  
  108.     <!--
  109.     Сколько последних постов из группы парсить:<br>
  110.     <input type="number" name="numpost" placeholder="3" size="3" class="form-control tools_form"><br> -->
  111.  
  112.     <br>
  113.     <textarea name="text" cols="50" rows="10" class="form-control tools_form"></textarea><br>
  114.  
  115.     <button type="submit" name="add" class="btn btn-success">Добавить</button>
  116. </form>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement