4

我正在尝试使用explode函数将字符串分解为数组。

我希望它使用在字符串中找到的换行符来打破字符串。

我查了一下,我尝试了所有方法,但我无法让它工作。

这是我到目前为止所拥有的:

$r = explode("\r\n" , $roster[0]);

但是当我 var_dump 变量时,我得到以下信息:

array (size=1)
  0 => string '\r\n                         ( G  A  Sh Hi Ga Ta PIM, +\/-  Icetime Rating)\r\nR Danny Kristo            1  0  2  0  0  0    0    1    7.00    7\r\nR Brian Gionta            1  1  5  1  1  0    0    0   19.20    8\r\nR Steve Quailer...

任何想法为什么?

4

3 回答 3

15

您可以尝试使用正则表达式拆分字符串。有一个换行符类:

$r = preg_split('/\R/', $string);

编辑:将缺少的分隔符添加到正则表达式和函数参数。

于 2013-06-08T21:36:52.797 回答
6

问题是\r\n在原始文本中不是行尾符号 - 它只是字面上的“反斜杠-r-反斜杠-n”序列。因此,您需要考虑到这一点:

$r = explode('\r\n', $roster[0]);

...即,使用单引号来分隔字符串。

于 2013-06-08T21:36:30.647 回答
5

您可以使用系统相关的 EOL

 $r = explode(PHP_EOL, $roster[0]);
于 2016-11-09T09:42:56.247 回答