使用PHP将CSV文件中的双引号括起来

前端之家收集整理的这篇文章主要介绍了使用PHP将CSV文件中的双引号括起来前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要使用 PHP将CSV文件中的所有字符串和数字双引号括起来.

如何在双引号内的所有数据中从PHP创建CSV文件

我正在使用此代码生成CSV – 我正在使用codeigniter框架

$array = array(
    array(
     (string)'XXX XX XX',(string)'3',(string)'68878353',(string)'',(string)'xxxx@xxxx.xxx.xx',),);

$this->load->helper('csv');
array_to_csv($array,'blueform.csv');

输出我得到:

"XXX XX XX",3,68878353,xxxx@xxxx.xxx.xx

预期产量:

"XXX XX XX","3","68878353","","xxxx@xxxx.xxx.xx"

array_to_csv的代码

if (!function_exists('array_to_csv')) {
    function array_to_csv($array,$download = "") {
        if ($download != "") {   
            header('Content-Type: application/csv');
            header('Content-Disposition: attachement; filename="' . $download . '"');
        }

        ob_start();
        $f = fopen('PHP://output','w') or show_error("Can't open PHP://output");
        $n = 0;
        foreach ($array as $line) {
            $n++;
            if (!fputcsv($f,$line)) {
                show_error("Can't write line $n: $line");
            }
        }
        fclose($f) or show_error("Can't close PHP://output");
        $str = ob_get_contents();
        ob_end_clean();

        if ($download == "") {
            return $str;
        } else {
            echo $str;
        }
    }
}

先谢谢你

PHP中构建CSV时,您应该使用PHP 5中提供的 fputcsv函数

从文档中可以看到以下参数:

int fputcsv ( resource $handle,array $fields [,string $delimiter = "," [,string $enclosure = '"' [,string $escape_char = "\" ]]] )

你有:

>您正在写的文件资源
>将数据放入CSV
>分隔符(通常为逗号)
>字符串外壳(这是你想要的引号)
>转义字符串(因此,如果您的数据包含机箱字符,则可以将其转义为避免看起来像新字段)

作为默认值,对于分隔符和“对于机箱,您不需要添加更多,这将正确地覆盖字符串.数字是一个不同的事情.有一个工作在this SO question,我发现后输入大部分内容,然后再出现数字问题:

Not happy with this solution but it is what I did and worked. The idea
is to set an empty char as enclosure character on fputcsv and add some
quotes on every element of your array.

06001

猜你在找的PHP相关文章