2013-05-13 70 views
0

我有一個用於填寫數據的excel模板。我將它導出爲CSV。其中一個字段包含一個新的行字符。當在Mac上完成它返回一個\r代替或\nPHP爆炸 r和 n字符

當我試圖引爆如下文本:

$skillsets = explode("\r", $j['skillsets']); // works with CSV exported from MAC 
$skillsets = explode("\n", $j['skillsets']); // works with CSV exported from WIN 

有什麼辦法,我可以檢查任何一方,並確保我的爆炸作品對於\r\n

+0

改爲使用preg_split或preg_match,這樣您就可以傳入多於一個的分隔符 – Ohgodwhy 2013-05-13 18:59:25

+4

爲什麼不使用str_replace將任何'\ r \ n'或'\ n \ r'的組合轉換成直線'\ n' – 2013-05-13 19:03:17

+0

可能還需要檢查[fgetcsv](http://php.net/manual/en/function.fgetcsv.php)以及相應的設置以自動檢測行尾。 – Jerry 2013-05-13 19:04:54

回答

1

最簡單的辦法是使用preg_split

$skillsets = preg_split('/(\r|\n)/', $j['skillsets']); 

使用正則表達式是沒有必要的,但是這是一個非常簡單的例子,你只需要改變一行代碼。