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).
Добавлено: 20 Августа 2013 07:29:31 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...