2012-01-07 61 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年内没有更新。