在PHP中使用2个标准拆分字符串

时间:2012-07-31 14:24:15

标签: php string explode

我正在使用此

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

将$ text拆分为一个行数组,以便我可以这样显示:

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

但现在我想测试每个$行的长度,如果长度超过50个字符,我想将每行分成50个字符的倍数。

我该怎么做并保留$ lines数组中的所有行?

我需要一种方法来测试每一行或使用explode(wordwrap($ line),50)将其爆炸;然后重新构建$ lines数组,以便我可以再循环所有行。

由于我不是编码员,我不知道如果一行必须分成50个字符的几个部分,如何在数组中插入新行。

希望你理解我的问题。 感谢。

2 个答案:

答案 0 :(得分: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) );
}

在此处查看:[{3}}

答案 1 :(得分:0)

您可以使用str_splitforeach内进行拆分,然后使用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;
}