PHP explode() - 如何避免空行?

时间:2014-02-01 21:15:28

标签: php explode

我认为这段代码最后会留下一个空白。如果这是真的,如何避免这种情况?

$text = explode( "\n", $text );
foreach( $text as $str ) { echo $str; }

3 个答案:

答案 0 :(得分:2)

在爆炸之前修剪文本。

$text = trim($text, "\n");
$text = explode( "\n", $text );
foreach($text as $str) {
    echo $str;
}

答案 1 :(得分:2)

第一种方法是在爆炸字符串之前使用trim()函数。

$text = trim($text, "\n");
$text = explode( "\n", $text );
foreach( $text as $str ) { echo $str; }

另一种方法是在爆炸后使用array_filter()

$text = explode( "\n", $text );
$text = array_filter($text);
foreach( $text as $str ) { echo $str; }

默认情况下array_filter()会删除等于false的元素,因此无需将回调定义为第二个参数。

无论如何,我认为第一种方式是最好的。

答案 2 :(得分:2)

您可以使用explode而不是preg_split使用标记PREG_SPLIT_NO_EMPTY

示例

$aLines = preg_split('/\n/', $sText, -1, PREG_SPLIT_NO_EMPTY);

但请注意preg_split is slower而不是explode