如何拆分多行字符串?

12

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

$matches="value1
value2
value3
value4
value5
";
我希望将整个字符串分成由值组成的数组,这些值是通过分隔符进行分离的。我知道如何将以空格分隔的字符串拆分成数组,例如explode(' ', $matches)。但是如何在这种类型的字符串上使用explode函数呢?
我尝试了以下代码:
$matches=explode('\n',$matches);
print_r($matches);

但结果如下:

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

)

1
你使用哪个操作系统?不同的操作系统有不同的换行符:http://en.wikipedia.org/wiki/Newline - Felix Kling
2个回答

34

你需要将 '\n' 改为 "\n"

来自PHP.net

如果字符串被双引号(")包围,PHP将为特殊字符解释更多的转义序列:

\n 换行符(LF 或 ASCII 中的 0x0A (10))
更多内容...


6

阅读 手册

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

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

另外,您可以使用PHP_EOL常量代替\n。在Windows中,“\r\n”可用作行尾,在这种情况下,您可以进行双重替换:
$matches=explode("\n", str_replace("\r","\n",$matches));


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接