为了账号安全,请及时绑定邮箱和手机立即绑定

用PHP生成Csv——输出不必要的引号

用PHP生成Csv——输出不必要的引号

PHP
侃侃尔雅 2023-04-21 13:35:25
我正在通过 PHP 生成和导出 CSV,经过我的团队的一些修改,现在结果是在列内生成了双引号。我通过使用 CakePHP 控制台执行此 Shell 脚本,通过我的终端生成它。/var/www/mysite.new/trunk/app/Console/cake Csv mysite.uk问题是我已经尝试了很多技术来剥离它们,例如:stripslashes(), str_replace(), trim()在我最后的修改中,我尝试应用 str_replace 函数。   foreach ($persons_csv as $person_csv){       /* The part where I get the data for stripping off the quotation marks */        $mail = $person_csv['Person']['email'];        $name = str_replace('"', '', $person_csv['Person']['name']);        $surname = str_replace('"', '', $person_csv['Person']['surname']);         /* REST OF THE CODE */    }然而,它只发生在姓氏和名字中有一个以上的单词,其中正在生成引号。一个字组成的姓氏和名字,看起来还可以。不过,名称中可能存在一些异常,其中包含空格,因此会再次生成双引号。我不太清楚为什么会这样。我可以附上两个屏幕截图,以便您更好地了解问题。如果您知道它可能是什么,那将非常感激。这是我生成 CSV 的其余代码。   private function addRow($row) {            $rows_deleted = 0;         if (!empty($row)){            fputcsv($this->buffer, $row, $this->delimiter, $this->enclosure);         } else {                return false;         }    }   private function renderHeaders() {        header("Content-type:application/vnd.ms-excel");        header("Content-disposition:attachment;filename=" . $this->filename);    }   private function setFilename($filename) {        $this->filename = $filename;        if (strtolower(substr($this->filename,   -4)) != '.csv') {            $this->filename .= '.csv';        }    }  private function render($filename = true, $to_encoding = null, $from_encoding = "auto") {    if(PAIS) {        if ($filename) {            if (is_string($filename)) {                $this->setFilename($filename);            }            $this->renderHeaders();        }        rewind($this->buffer);        $output = stream_get_contents($this->buffer);    }}
查看完整描述

1 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

而不是使用fputcsv,尝试implode

更新 1:您必须确保您的价值不包含, (comma)

更新 2:如果您担心引用的文本会成为您的 CSV 数据表的问题,那么您需要知道 CSV 的设计目的是为了在值之间有任何空格。所以你不必担心。任何 CSV 解析器都会正确理解引用的值。


查看完整回答
反对 回复 2023-04-21
  • 1 回答
  • 0 关注
  • 115 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信