Определение "короткого" участка в тексе

Статус
В этой теме нельзя размещать новые ответы.

dump1111

Участник
Регистрация
7 Июл 2009
Сообщения
266
Реакции
8
Вот есть текст. Строки его отделены переводами строк. Причём длина строк примерно одинакова, но есть фрагменты текста, где длина строк намного меньше чем длина строк основной части текста. И вот вопрос: как стредствами php удалить эти участки, с короткими строками?
 
Здравствуйте. Можно попробовать таким образом сделать
PHP:
$f = file('path/to/file');
$i = 0;
foreach($f as $s){
    $i += strlen($s);
}
$avg_len = $i / count($f);
$newfile = fopen('path/to/newfile', 'w');
foreach($f as $s){
    if(strlen($s)>=$avg_len-20){
        fwrite($newfile, $s."\n"); 
    }
}
fclose($newfile);
 
Это просто удалит короткие строки, а ему, я так понял, надо удалить абзацы из коротких строк. Типа там стихи или еще что. Короче, области текста где нет ни одной длинной строки.

Тогда надо как-то побить текст на нужные тебе участки
PHP:
 $pars = explode("\n\n", file_get_contents('text.txt'));
потом для каждого участка найти, есть ли в нем длинная строка и если есть, то вывести, а если нет - просто пропустить.
PHP:
foreach($pars as $par) {
  $has_long = 0;
  foreach(explode("\n", $par) as $s) if (strlen($s) > 20) {
     $has_long = 1;
     break;
  }
  if ($has_long) echo $par . "\n\n";
}
Признаки для отделения абзацев и строк внутри абзаца можно варьировать.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху