PHP:使用preg_split在空行上拆分
PHP: Using preg_split to split on empty lines
我想使用空行作为分隔符来拆分多行字符串。
例如:
apple
aardvark
accordion
banana
bilby
banjo
cherry
cockatoo
cello
应该给我这样的结果:
Array
(
[0] => apple
aardvark
accordion
[2] => banana
bilby
banjo
[3] => cherry
cockatoo
cello
我试过以下方法:
$data=preg_split('/^$/m',$data);
但我得到以下结果:
Array
(
[0] => apple
aardvark
accordion
[1] =>
banana
bilby
banjo
[2] =>
cherry
cockatoo
cello
)
也就是说,结果似乎包括前导和尾随空行。
我试过 PREG_SPLIT_NO_EMPTY
,但这只会让情况变得更糟:结果是一个字符串。
用空行分割字符串怎么办?
为什么不使用简单的 explode() 函数?
$str = "apple
aardvark
accordion
banana
bilby
banjo
cherry
cockatoo
cello" ;
$arr = explode(PHP_EOL.PHP_EOL, $str);
Var_dump ($arr);
输出:
array(3) {
[0]=>
string(24) "apple
aardvark
accordion"
[1]=>
string(18) "banana
bilby
banjo"
[2]=>
string(21) "cherry
cockatoo
cello"
}
我想使用空行作为分隔符来拆分多行字符串。
例如:
apple
aardvark
accordion
banana
bilby
banjo
cherry
cockatoo
cello
应该给我这样的结果:
Array
(
[0] => apple
aardvark
accordion
[2] => banana
bilby
banjo
[3] => cherry
cockatoo
cello
我试过以下方法:
$data=preg_split('/^$/m',$data);
但我得到以下结果:
Array
(
[0] => apple
aardvark
accordion
[1] =>
banana
bilby
banjo
[2] =>
cherry
cockatoo
cello
)
也就是说,结果似乎包括前导和尾随空行。
我试过 PREG_SPLIT_NO_EMPTY
,但这只会让情况变得更糟:结果是一个字符串。
用空行分割字符串怎么办?
为什么不使用简单的 explode() 函数?
$str = "apple
aardvark
accordion
banana
bilby
banjo
cherry
cockatoo
cello" ;
$arr = explode(PHP_EOL.PHP_EOL, $str);
Var_dump ($arr);
输出:
array(3) {
[0]=>
string(24) "apple
aardvark
accordion"
[1]=>
string(18) "banana
bilby
banjo"
[2]=>
string(21) "cherry
cockatoo
cello"
}