如何爆炸多行字符串?

时间:2011-05-28 16:32:32

标签: php explode

PHP - 我有一个字符串,每行都有不同的值:

$matches="value1
value2
value3
value4
value5
";

我想将整个字符串分解为由separeted值组成的数组。我知道如何爆炸空格分隔的字符串,如explode(' ', $matches)。但是我如何在这种类型的字符串上使用explode函数?

我试过了:

$matches=explode('\n',$matches);
print_r($matches);

但结果如下:

Array
(
    [0] => hello
hello
hello
hello
hello
hello
hello

)

2 个答案:

答案 0 :(得分:26)

您需要将'\n'更改为"\n"

来自PHP.net

  

如果包含字符串   双引号(“),PHP将解释   更多特殊的逃脱序列   字符:

     

\ n换行(ASCII中的LF或0x0A(10))
  More...

答案 1 :(得分:5)

阅读manual

  

注意:不同于双引号和   heredoc语法,变量和转义   特殊字符的序列会   当它们出现时不被扩展   单引号字符串。

因此请使用“\ n”而不是“\ n”

此外,您可以使用PHP_EOL常量而不是\n 在Windows“\ r \ n”中可以用作行尾,对于这种情况你可以进行双重替换:
$matches=explode("\n", str_replace("\r","\n",$matches));