2012-01-07 33 views
0

我的腳本工作得很好,但我無法解決如何維護逗號,無法破壞我的.csv格式。以.csv格式維護逗號

我一直能夠得到這個工作的唯一方法是通過preg_replace()和剝離逗號。但這是不夠的。我嘗試了幾種不同的黑客無濟於事。

這是我現在有:

foreach ($rows[$i] as $value) { 
    $insert .= preg_replace("/,/", "", $value) . ","; 
    //$insert .= mysql_real_escape_string($value) . ","; 
} 
+0

爲什麼它不夠?當然,你可以使用'str_replace()'(而且應該)而不是正則表達式,但是你的正則表達式_應該工作。 「不夠」涵蓋了很多情況;請澄清。 – Bojangles 2012-01-07 04:49:37

+1

如果你用'fputcsv'創建你的cvs文件,並用'fgetcsv'讀取它們,你就不會有這個問題... – 2012-01-07 05:18:44

+1

當然這是不夠的......用一組胡桃夾攪拌你的咖啡是不夠的...使用正確的工具進行這項工作...使用fgetcsv()和fputcsv()讀取和寫入csv文件,並且您不會有任何需要黑客解決方案的問題 – 2012-01-07 07:21:35

回答

0

你有沒有嘗試過這樣的事情

foreach ($rows[$i] as $value) 
{ 
    $rowparts = explode(",",$value); 
    // Do some validation, i.e. columcount, string specfier an so on 
    $insert .= implode("; ", $rowparts) . "\r\n"; 
} 

只是一個想法,你也可以建立您的CSV行的部分的驗證。

0

正如其他評論者所指出的,正確的解決方案是使用fputcsv

你真的不應該使用php4 - 這是過時的方式。它在4年內沒有更新。