Advertisement
Guest User

Untitled

a guest
Jul 24th, 2019
319
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.70 KB | None | 0 0
  1.  
  2. <?php
  3. $text='';
  4. $str_1=array(
  5. 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
  6. "А","Б","В","Г","Д","Е","Ё","Ж","З","И","Й","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ч","Ш","Щ","Ъ","Ы","Ь","Э","Ю","Я",
  7. "(",")",'"',"'",'.',',',':',';','>','<','  ','!','?');
  8. $str_2=array(
  9. 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
  10. "а","б","в","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ","ы","ь","э","ю","я",
  11. '','','','','','','','','','',' ','','');
  12. $text_poisk_post='';
  13. if(isset($_POST["text"])){$text_poisk_post=htmlspecialchars(stripslashes(strip_tags(trim(str_replace($str_1,$str_2,$_POST["text"])))));}
  14. //--- загрузка базы
  15. $user_book=$_SERVER['DOCUMENT_ROOT'].'/-php-/poisk/info.txt';
  16. if(file_exists($user_book)){$poisk_if='ok';}else{$poisk_if='no';}
  17. if(!$text_poisk_post){$poisk_if='no';}
  18. $book_arr_count=0;// количество
  19. if($poisk_if=='ok'){
  20.     $text=file_get_contents($user_book); $book_arr=explode("\n", $text); $book_arr_count=count($book_arr)-1;
  21.     $i=0;  while ($i < $book_arr_count) { $book_m[$i]=explode("] _ [", $book_arr[$i]);
  22.     $poisk_bd[$i][0]=0;// процент сходства
  23.     $poisk_bd[$i][1]=$book_m[$i][0];// URL где находится книга
  24.     $poisk_bd[$i][2]=str_replace($str_1,$str_2,$book_m[$i][1]); // заголавок title
  25.     $poisk_bd[$i][3]=str_replace($str_1,$str_2,$book_m[$i][11]);  // краткое описание description
  26.     $i++;}
  27. }//--- загрузка базы
  28. if($poisk_if=='ok'){
  29. $poisk_post_arr=explode(" ", $text_poisk_post);
  30. $poisk_post_arr_count=count($poisk_post_arr);
  31. $post_i=0;while ($post_i < $poisk_post_arr_count) {
  32.   // проверяем заголавок title
  33.    $i=0; while ($i < $book_arr_count) {
  34.      $poisk_bd_title=explode(" ",$poisk_bd[$i][2]);
  35.      $poisk_bd_title_count=count($poisk_bd_title);
  36.      $ii=0;while ($ii < $poisk_bd_title_count) {
  37.         similar_text($poisk_bd_title[$ii],$poisk_post_arr[$post_i] , $perc_1); // сравниваем
  38.         if($perc_1>90){$poisk_bd[$i][0]=$poisk_bd[$i][0]+1;} // сравниваем совпадения 90%
  39.      $ii++;}
  40.   $i++;}
  41.   // проверяем заголавок title
  42.   // провиряем краткое описание description
  43.    $i=0; while ($i < $book_arr_count) {
  44.      $poisk_bd_title=explode(" ",$poisk_bd[$i][3]);
  45.      $poisk_bd_title_count=count($poisk_bd_title);
  46.      $ii=0;while ($ii < $poisk_bd_title_count) {
  47.         similar_text($poisk_bd_title[$ii],$poisk_post_arr[$post_i] , $perc_1); // сравниваем
  48.         if($perc_1>90){$poisk_bd[$i][0]=$poisk_bd[$i][0]+1;} // сравниваем совпадения 90%
  49.      $ii++;}
  50.   $i++;}  
  51.   // провиряем краткое описание description
  52.  $post_i++;}
  53. }
  54.  
  55. // ----- фильтруем  ----------------
  56. array_multisort($poisk_bd, SORT_DESC);
  57. // ----- фильтруем  ----------------
  58.    
  59. //========================= Вывод ==============================
  60. echo '<p style="text-align:center;">Поиск по фразе:<b>'.$text_poisk_post.'</b></p>';
  61. $i=0;
  62. while ($i < $book_arr_count) {
  63.     if($poisk_bd[$i][0]==0){$i=$book_arr_count;}else{
  64.         ?>
  65.         <div>
  66.         <a href="<?php echo $poisk_bd[$i][1]; ?>" style="display:block; font-weight:bold;"><?php echo $poisk_bd[$i][2]; ?></a>
  67.         <?php echo $poisk_bd[$i][3]; /*краткое описание description*/ ?>
  68.         </div>
  69.         <?php
  70.     }$i++;}
  71. //========================= Вывод ==============================
  72. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement