2011-05-28 108 views
7

PHP - I有一个具有在每行不同的值的字符串:如何爆炸多行字符串?

$matches="value1 
value2 
value3 
value4 
value5 
"; 

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

我尝试这样做:

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

但结果是这样的:

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

) 
+1

您正在使用的操作系统?不同的操作系统'有不同的新行字符:http://en.wikipedia.org/wiki/Newline – 2011-05-28 16:35:42

回答

23

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

PHP.net

如果字符串括在 双引号(“),PHP将解释为特殊 字符 的转义序列:

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

+0

将在10分钟内接受答案。谢谢。 – 2011-05-28 16:36:50

5

manual

注:特殊字符不像双引号和 定界符语法,变量和转义序列 当它们出现在 单引号字符串将 无法展开。

所以使用 “\ n”,而不是 '\ n'

此外,而不是\n可以使用PHP_EOL不变。
在Windows的“\ r \ n”可以作为行结束,对于这种情况,你可以做双置换:
$matches=explode("\n", str_replace("\r","\n",$matches));