2016-04-15 31 views
2

我正在嘗試處理包含描述字段內的換行符的CSV文件。但是,當使用str_getcsv將行拆分成數組時,它也會在機箱內的換行符上進行拆分。 例子:str_getcsv機箱不能與換行符一起工作

$data ='header1,header2 
value1,"value2a 
values2b"'; 
$data = str_getcsv($data, PHP_EOL, '"'); 
var_export($data); 

輸出:

array (
    0 => 'header1,header2', 
    1 => 'value1,"value2a', 
    2 => 'value2b"', 
) 

期望值:

array (
    0 => 'header1,header2', 
    1 => 'value1,"value2a 
value2b"', 
) 

PHP版本是5.6.19(CLI)

+0

我沒有看到你的輸出有任何預期的分隔符。在你的str_getcsv中,你給出了分隔符PHP_EOL,這意味着它將在新行中爆炸..如果你通過「,」代替PHP_EOL,那麼你也不能期望輸出 – pritesh

+0

是否有另一種方法來拆分不包含在引號中的換行符?或者你認爲我將不得不使用一些正則表達式來做到這一點? – jjmirks

回答