2014-02-15 5 views
2
<body> 
<?php 
    $text = "The quick brown fox jumped over the lazy dog."; 
    $newtext = wordwrap($text, 20, "<br />\n"); 
    echo $newtext; 
?> 
</body> 

В приведенном выше коде после каждых 20 символов отображается новая строка..Как разбить текст на строки в зависимости от количества слов?

Он выводит:

The quick brown fox 
jumped over the lazy 
dog. 

Вместо символов, я хочу, чтобы иметь возможность разделить на основе количества слов. Выход Например, если установить слова в строке как 4, он должен:

The quick brown fox 
jumped over the lazy 
dog. 

Как я могу добиться этого с помощью PHP?

ответ

1

Использование preg_split() разделить предложение в массив слов и использовать array_chunk() разделить этот массив на несколько кусков нужной длины:

$wordsPerLine = 4; 
$words = preg_split('/(?<=\w)\b\s*/', $text); 
$chunks = array_chunk($words, $wordsPerLine); 

foreach ($chunks as $arr) { 
    echo implode(' ', $arr), '<br />'; 
} 

Выход:

The quick brown fox 
jumped over the lazy 
dog. 

Demo.

+0

Этот код показывает всю строку в одной строке .... пожалуйста, помогите – user3138522

+0

@ user3138522: измените 'PHP_EOL' на'
', затем. –

+0

да это сработало, чем хх много :) – user3138522

1

Измените $ numOfWords по мере необходимости

<?php 
    $text = "The quick brown fox jumped over the lazy dog."; 
    $newtext = explode(" ", $text); 

    $numOfWords = 3; 

    for($i=0;$i<sizeof($newtext);$i++){ 
     echo $newtext[$i]." "; 
     if(((($i+1) % $numOfWords) == 0) && $i!=0){ 
      echo '<br />'; 
     } 
    } 


?> 
+0

он показывает всю линию вместе – user3138522

+0

Была небольшая ошибка, и теперь она исправлена. –

Смежные вопросы