1

私はこれを使用しています

$lines = explode(PHP_EOL, trim($text));

$text を行の配列に分割して、次のように表示できるようにします。

foreach ($lines as $line) {
 echo $line;
}

しかし今、私は各 $line の長さをテストしたいと思っています。長さが 50 文字を超えている場合は、各行を 50 文字の倍数に分割したいと考えています。

これを行い、すべての行を $lines 配列に保持するにはどうすればよいですか?

各行をテストするか、explode( wordwrap($line), 50 ); を使用して分解する方法が必要です。$lines 配列を再構築して、すべての行を再度循環できるようにします。

私はコーダーではないので、1 行を 50 文字の複数の部分に分割する必要がある場合、配列に新しい行を挿入する方法がわかりません。

私の質問を理解していただければ幸いです。ありがとう。

4

2 に答える 2

2

これはまさにそのchunk_splitために作られているものです:

echo chunk_split( $line, 50 );

これ$lineにより、それぞれ50文字の複数行に分割されます。


OPが行を配列内の個々の要素に分割することを指定した後、更新します。

$temp = explode( PHP_EOL, trim($text) );
$lines = array();

foreach ($temp as $line) {
   $lines = array_merge( $lines, str_split($line, 50) );
}

ここで実際に見てください:http://viper-7.com/eRgm6p

于 2012-07-31T14:27:15.883 に答える
0

を使用str_splitして、内で分割を実行してからforeach、を使用array_spliceして古い要素の代わりに新しい要素を配置できます。

実際には、次のようになります。

$lines = explode(PHP_EOL, trim($text));
foreach ($lines as $i => $line) {
    if (strlen($line) > 50) {
        $split = str_split($line, 50);
        $lines = array_splice($lines, $i, 1, $split);
    }
}
reset($lines);
foreach ($lines as $line) {
    echo $line;
}
于 2012-07-31T14:32:43.283 に答える