PHP

Как разбить текст на блоки в php без разрыва фраз и слов

Задача: разбить текст на блоки на определённое количество символов без разрыва фраз и слов, то есть без грубой "резки" текста

Способ решения, приведённый ниже будет разделять текст на блоки по ~1000 символов, используя разделитель точку.
$text = file_get_contents("text.txt"); //пишем содержимое тексового файла в строковую переменную   
$at=explode(". ", $text); //разделим весь текст на предложения и пишем в массив    
$count=count($at); //узнаём кол-во предложений в массиве    
for ($i=0; $i<$count; $i++){        
    $tout.=$at[$i].". ";  
    if (strlen($tout)>=1000) { //тут предположительно будем делить по ~1000 знаков в блоке  
        $fout[]=$tout; //пишем набор предложений, кол-во знаков в которых равно или больше 1000 в массив  
        unset($tout);  
    }  
    // это нужно для записи последнего набора предложений, кол-во знаков в которых меньше 1000  
    elseif(strlen($tout)<=1000 && $i==$count-1){  
        $fout[]=$tout;    
        unset($tout);   
    }    
}  
  
// Тут собственно пример вывода  
//все блоки хранятся в массиве $fout  
  
//print_r($fout);  
  
echo strlen($fout[0]);  
echo "<br />";  
echo $fout[0];  
echo "<hr><br /><br />";  
echo strlen($fout[1]);  
echo "<br />";  
echo $fout[1];  
echo "<hr><br /><br />";  
echo strlen($fout[2]);  
echo "<br />";  
echo $fout[2];

Вывод: данный скрипт успешно делит текст на блоки без разрыва предложений и слов. Минусом его является то, что кол-во символов в блоках иногда может довольно сильно отличатся от нужного нам размера (в данном случае 1000).
Теги:
блоки, разрыв фраз
Добавлено: 24 Мая 2018 20:28:34 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...