2011-07-21 154 views
0

我有以下列格式的陣列 - 這是本質上的預格式化的CSV線的陣列 - 在這個例子中鍵0和1具有包含了換行符的CSV值。CSV線(),需要保留換行符

Array 
(
    [0] => 'foo,foo,foo,foo 
    bar,foo,a:1:{i:0;s:4:"blah";}' 
    [1] => 'bar,bar,bar,bar 
    foo,bar,a:1:{i:0;s:4:"blah";}' 
    [1] => 'bar,bar,bar,foo,bar,a:1:{i:0;s:4:"blah";}' 
) 

我接下來做什麼,是內爆,使用\r\n如膠水,生成CSV文件,然後寫出來。問題是生成的文件沒有用雙引號將包含換行符的字段換行,這樣可以保留換行符(或者至少我假設它會)。

生成CSV文件將被上傳到數據庫或Excel中編輯和換行符需要在現場被保留。

使用fputcsv爆炸成正確的格式後生成CSV其具有換行和包裹在一個雙引號觀察在記事本中或類似的而不是當在Excel中打開。

$parent_wholelines = array(); 
    foreach ($output_array as $wholeline) { 
    $parent_wholelines[] = explode(',', $wholeline); 
    } 
+2

身高'var_export'。 'print_r'不是很好地向我們展示_precisely_你的數據是什麼。 –

+0

@ Tomalak-Geret'kal - var_export在這種情況下輸出相同的東西,加上一些按鍵換行符。 – Dan

+0

是的;那些是有用的。精度在我們的領域非常重要。 –

回答

0

http://www.php.net/manual/en/function.fputcsv.php一個片段,也許可以幫助你。 還是得到了使用序列化的:http://php.net/manual/en/function.serialize.php

+0

謝謝,但這只是從php.net的fputcsv複製和粘貼。我知道如何使用它,我問了一個不同的問題,因爲我的數據不是這種格式。我知道serialize(),因爲這是如何創建一些示例數據的。我不能使用它來存儲整個字符串,因爲我沒有編寫CSV的最終導入,我只需要編寫它。 – Dan