1.双引号 

php 写入csv时 双引号,逗号及特殊字符 随笔 第1张
<?php
function new_csv($string)
{
    $filename = date('Ymd').'.csv'; //设置文件名
    header("Content-type:text/csv");
    header("Content-Disposition:attachment;filename=".$filename);
    header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
    header('Expires:0');
    header('Pragma:public');
    echo $string;
}

$str = 'a,b,c,d,"e"'."\n".'a,b,c,d,e'."\n";
new_csv($str);
View Code

下载内容为

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

php 写入csv时 双引号,逗号及特殊字符 随笔 第3张

 

我们发现csv自动忽略了双引号 。那么我想要展示怎么办呢?

php 写入csv时 双引号,逗号及特殊字符 随笔 第4张
<?php
function new_csv($string)
{
    $filename = date('Ymd').'.csv'; //设置文件名
    header("Content-type:text/csv");
    header("Content-Disposition:attachment;filename=".$filename);
    header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
    header('Expires:0');
    header('Pragma:public');
    echo $string;
}

$str = 'a,b,c,d,"""e"""'."\n".'a,b,c,d,e'."\n";
new_csv($str);
View Code

在将每个" 替换为3个就行 

2.逗号及其他字符 

如果遇到逗号会自动分割,此时我们只需要将该数据直接用双引号包起来就行了 ,因为csv是会忽略双印号的 

注:虽然csv自动忽略双引号,但是如果你用notepad打开该csv文件,还是会看到 

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄