2011-05-28 107 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));