我正在使用此
$lines = explode(PHP_EOL, trim($text));
将$ text拆分为一个行数组,以便我可以这样显示:
foreach ($lines as $line) {
echo $line;
}
但现在我想测试每个$行的长度,如果长度超过50个字符,我想将每行分成50个字符的倍数。
我该怎么做并保留$ lines数组中的所有行?
我需要一种方法来测试每一行或使用explode(wordwrap($ line),50)将其爆炸;然后重新构建$ lines数组,以便我可以再循环所有行。
由于我不是编码员,我不知道如果一行必须分成50个字符的几个部分,如何在数组中插入新行。
希望你理解我的问题。 感谢。
答案 0 :(得分:2)
这正是chunk_split
的目的:
echo chunk_split( $line, 50 );
这会将您的$line
分成多行,每行50个字符。
更新:
$temp = explode( PHP_EOL, trim($text) );
$lines = array();
foreach ($temp as $line) {
$lines = array_merge( $lines, str_split($line, 50) );
}
在此处查看:[{3}}
答案 1 :(得分: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;
}