在 2 个换行符处分解一个字符串,而不是仅 1 个

Exploding a string at 2 newlines as oppose to just 1

我正在尝试分解包含 1 个以上换行符的字符串。更具体地说,2 个换行符,我不知道该怎么做。例如:

$text = "
text1

text2

text3
";

$text = explode(PHP_EOL, $text);

此后数组中会有一些空索引。我需要在 2 个换行符而不是一个处爆炸。我该怎么做?

如果您确定换行符是如何形成的(它们可能包含 \n and/or \r),您可以这样做:

$Array = explode("\n\n", $text);

您还可以 trim 字符串,以删除开头和结尾的换行符:

$Array = explode("\n\n", trim($text));

这应该适合你:

只需将 preg_split() 与标志一起使用:PREG_SPLIT_NO_EMPTY 使用常量 PHP_EOL 设置和展开字符串,例如

$arr = preg_split("/". PHP_EOL . "/", $text, -1, PREG_SPLIT_NO_EMPTY);
print_r($arr);

输出:

Array ( [0] => text1 [1] => text2 [2] => text3 )