开发者社区> 问答> 正文

PHP怎么在导出csv的时候加了双引号,什么原因?

用PHP输出一个csv文件screenshot
比如$line的内容是:screenshot
我希望的数据:screenshot
我这样做
screenshot结果出来每一列数据上都被加了两个双引号:screenshot
这种方法不对,还是有其他更好的方法?

展开
收起
落地花开啦 2016-06-13 15:48:36 5047 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    screenshot
    /ext/standard/file.c 的第 1867 - 1875 行 ...
    这里描述了 enclosure ... 我翻译成 包围符 出现的规则 ...
    双引号本身正是默认的包围符 ... 触发了规则 ... 导致双引号外面再加双引号造成两个双引号的结果 ...
    知道了原理 ... 我们来研究对策 ...
    第一种方法 ... 使用默认的双引号做包围符 ... 但是强制所有元素触发 ...
    screenshot
    产生的结果大概会类似于下面这样 ...
    screenshot
    第二种方法 ... 我们去研究手册 ... 手册上关于这个函数的说明是这样的 ...
    screenshot
    你可以看到这个函数支持自定义包围符 ... 也就是第四个参数 $enclosure ...
    于是我们可以手动在所有元素的两侧加上双引号 ... 并修改默认的包围符为空 ...
    screenshot
    这种方式可以让你的例子返回完美的结果 ...
    但是如果元素触发了包围符出现规则的话 ... 就会在分隔符也就是逗号的两端出现空格 ...

    2019-07-17 19:36:14
    赞同 展开评论 打赏
问答分类:
PHP
问答地址:
问答排行榜
最热
最新

相关电子书

更多
阿里云栖开发者沙龙PHP技术专场-直面PHP微服务架构挑战-高驰涛 立即下载
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载