Advertisement
zero50x

Работа с анг. предложениями

Jul 9th, 2017
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.43 KB | None | 0 0
  1. // Функционал:
  2. // 1) Удаляет предложения в которых есть $DeleteAll
  3. // 2) Удаляет предложения которые начинаются на слово из массива $DontUse
  4. // 3) Удаляет вводные слова из массива $UseAndReplace и делает первую букву слова идущего
  5.  
  6. <?php
  7. error_reporting(E_ALL | E_STRICT); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE);
  8. //echo "<pre>"; var_dump($_POST); echo "</pre>";
  9.  
  10. $DeleteAll = array('said\s[A-Z][a-z]');
  11. $DontUse = array('It', 'This', 'For example', 'These', 'Eventually', 'In turn', 'In these', 'That', 'That’s', 'That\'s', 'He', 'She',
  12.     '[A-Za-z]\sof\sthat');
  13. $UseAndReplace = array('Besides', 'Furthermore', 'Also'); // , 'Hence', 'Thus'
  14.  
  15.  
  16. if(!empty($_POST['text'])){
  17.  
  18.     $text = trim($_POST['text']);
  19.     //$text = strtolower($text);
  20.  
  21.     $text = preg_replace("/\n/ism", " ", $text);
  22.     $text = preg_replace("/[\s]{2,}/ism", " ", $text);
  23.  
  24.     $dva = ".Ъ";
  25.     $a = '/';
  26.     //$text = preg_replace("/\.\s[a-z]/ism", "$1{$dva}$2", $text);
  27.     //$text = preg_replace("/\.\s[a-z]/ism", "$0{$a}$1{$a}$2", $text);
  28.     $text = preg_replace("/\.\s[a-z]/ism", "{$dva}$0", $text);
  29.  
  30.     $array = explode('Ъ.', $text);
  31.     $count = count($array);
  32.  
  33.     // Очистим от пробелов на концах что бы не было проблем
  34.     for ($i = 0; $i < count($array); $i++) {
  35.         $array[$i] = trim($array[$i]);
  36.     }
  37.  
  38.  
  39.     //echo "<pre>"; var_dump($array); echo "</pre>";
  40.     //echo $text."<br>";
  41.  
  42.  
  43.     // Цикл перебора предложений
  44.     for ($i = 0; $i < $count; $i++) {
  45.  
  46.         //echo "<pre>"; var_dump($array); echo "</pre>";
  47.  
  48.         // Удаление предложения целиком при наличии запрещённых фраз
  49.         for ($k = 0; $k < count($DeleteAll); $k++) {
  50.             if(isset($array[$i])){
  51.                 if(preg_match("/{$DeleteAll[$k]}/sm", $array[$i])){
  52.                     unset($array[$i]);
  53.                     break 1;
  54.                 }
  55.             }
  56.         }
  57.  
  58.         // Цикл поиска запрещённых для начала слов
  59.         for ($k = 0; $k < count($DontUse); $k++) {
  60.             if(isset($array[$i])){
  61.                 if(preg_match("/^{$DontUse[$k]}[\s,]{1,}/", $array[$i])){
  62.                     unset($array[$i]);
  63.                     break 1;
  64.                 }
  65.             }
  66.         }
  67.  
  68.         // Цикл поиска слов в начале, которые надо заменить
  69.         for ($k = 0; $k < count($UseAndReplace); $k++) {
  70.             if(isset($array[$i])){
  71.                 if(preg_match("/^{$UseAndReplace[$k]}[\s,]{1,}/", $array[$i])){
  72.                     $array[$i] = preg_replace("/^{$UseAndReplace[$k]}[\s,]{0,}/", "", $array[$i]);
  73.                     $array[$i] = ucfirst($array[$i]);
  74.                 }
  75.             }
  76.         }
  77.     }
  78.  
  79.     //echo "<pre>"; var_dump($array); echo "</pre>";
  80.  
  81.     for ($i = 0; $i < $count; $i++) {
  82.         if(isset($array[$i])){
  83.             echo $array[$i]."<br><br>";
  84.         }
  85.     }
  86.  
  87. }
  88.  
  89. ?>
  90.  
  91. <form action="" method="POST">
  92.     <textarea name="text" cols="50" rows="10" class="form-control tools_form"></textarea>
  93.     <br>
  94.     <br>
  95.     <button type="submit" name="add" class="btn btn-success">Запустить скрипт</button>
  96. </form>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement