我认为这段代码最后会留下一个空白。如果这是真的,如何避免这种情况?
$text = explode( "\n", $text );
foreach( $text as $str ) { echo $str; }
答案 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
。