我有一个新的行字符字符串。我想把这个字符串转换成一个数组,对于每一个新行,在数组中跳转一个索引位置。
如果字符串是:
My text1
My text2
My text3
我想要的结果是:
Array
(
[0] => My text1
[1] => My text2
[2] => My text3
)
我有一个新的行字符字符串。我想把这个字符串转换成一个数组,对于每一个新行,在数组中跳转一个索引位置。
如果字符串是:
My text1
My text2
My text3
我想要的结果是:
Array
(
[0] => My text1
[1] => My text2
[2] => My text3
)
当前回答
这就是我的方式:
$lines = preg_split('/[\r\n]+/', $db_text, NULL, PREG_SPLIT_NO_EMPTY);
这也将跳过所有空行。
其他回答
我一直都很成功地使用这个方法:
$array = preg_split("/\r\n|\n|\r/", $string);
(更新为最后的\r,谢谢@LobsterMan)
PHP已经知道当前系统的换行符。只用EOL常数。
explode(PHP_EOL,$string)
换行符在不同的平台上有不同的定义,\r\n, \r或\n。
使用RegExp分割字符串,您可以用\R匹配所有三个字符串
对于你的问题:
$array = preg_split ('/$\R?^/m', $string);
这将与Windows, Mac和Linux上的换行符匹配!
你可以用这个:
\str_getcsv($str, PHP_EOL);
<anti-answer>
正如其他答案所指定的,一定要使用爆炸而不是分裂,因为从PHP 5.3.0开始,分裂已被弃用。例如,以下不是你想要的方式:
$your_array = split(chr(10), $your_string);
LF = "\n" = chr(10), CR = "\r" = chr(13)
</anti-answer>