-1

改行のない非常に長い記事を想像してみてください。まるで

sentence 1. sentence 2. sentence 3. sentence 4. sentence 5. sentence 6. sentence 7. 
sentence 8. sentence 9. sentence 10. sentence 11. sentence 12. sentence 13. sentence 14. 
sentence 15. sentence 16. sentence 17. sentence 18. sentence 19. sentence 20. sentence 
21. sentence 22. sentence 23. sentence 24. sentence 25.

5文ごとに改行したい。または、5 回ごとに "."

どうやってやるの ?

4

3 に答える 3

2

これは本当に悪い方法です。これは正規表現で実行できると思いますが、とにかく。

<?php
$str = "a.b.c.d.e.f.g.h.i.j.";
$arr = explode(".", $str);
$new_str = "";
$j = 1;
foreach($arr as $arr_el) {
    $new_str .= $arr_el.".";
    if($j % 5 == 0) {
        $new_str .= "<br/><br/>";
    }
    $j++;
}

echo $new_str;
于 2012-08-28T23:47:29.193 に答える
2
$str="long sentence. long sentence. ";
$lines=explode('. ', $str); // Break sentence with ". "
$i=1;
    foreach($lines as $l){
    echo $lines;
    if ($i%5==0){echo "<br /><br />";}
i++;
}

文がそれほど単純であれば、うまくいくかもしれません。

于 2012-08-28T23:47:43.203 に答える
1

このパズルには 2 つのピースがあります。

  1. 入力テキストを文に分割する
  2. 5 センテンスごとに必要なテキストを挿入する

私は#1に取り組むつもりはありません。なぜなら、「5ドットごとに」実際には実際にはそれをカットしないことが通常判明しているためです。情報に基づいた選択をすること。ピリオドの分割は、explode(".", $string)そのままにしておくのと同じくらい簡単にできるとだけ言っておきます。

2 番目の問題は、ありがたいことに簡単です。$sentences各文字列が 1 つの文 (末尾のピリオドを含む) である文字列の配列であると仮定すると、次のようにすることができます。

$chunks = array_chunk($sentences, 5);
foreach($chunks as &$chunk) {
    $chunk = implode(' ', $chunk);
}
$result = implode("<br><br>", $chunks);

を使用するのは毎日ではないため、このコードを提供することに夢中になったことを認めますarray_chunk

于 2012-08-28T23:47:42.050 に答える