0

非常に長いテキストがあり、N 文字の後にテキストを切り取る必要があります。これにより、最後に単語が切り取られることなく、複数の行にレンダリングされたテキストが得られます。

したがって、1 行に保存された 1000 文字の長さのテキストがあり、100 文字から 100 文字にカットする必要がある場合、最後に 10 行に広がるテキストが得られます。

何かを試してみましたが、行き詰まりました。

foreach は機能しません。テキストは配列として表示されません。また、テストで単語をそのままにしておくことを確認しませんでした。

誰もこれを試しましたか?または、解決策とのリンクはありますか?

public static function cut_line_after_n_chars($str, $n = 70) {
    $result = '';
    $pos = 0;
    foreach ($str as $c) {
        $pos++;
        if ($pos == $n) {
            $result .= $c + '<br/>';
            $pos = 0;
        }
        else
            $result .= $c;
    }
    return $result;
}
4

2 に答える 2

4

が必要なようですwordwrap

http://php.net/manual/en/function.wordwrap.php

これにより、単語を切り捨てることなく、文字列を断片の配列に分割できます。その後、これらの部分を好きなようにフォーマットできます。

編集

それでも各行を 100 文字にする必要がある場合は、 を使用str_padして各行に余分なスペースを追加できます。

于 2013-02-27T16:11:15.173 に答える
0

文字列から単語の配列を取得するには、explode() 関数を使用します。

$words = explode( ' ', $str );

$length = 0;
foreach( $words as $word ) {
  // Your loop code goes here.
}
于 2013-02-27T16:13:43.097 に答える