【问题标题】:Creating CSV with PHP用 PHP 创建 CSV
【发布时间】:2013-02-16 20:50:11
【问题描述】:

我正在尝试创建一个动态 csv 文件以导出到我网站上的供应商网站。他们希望所有值都用双引号括起来。我正在尝试创建该行,然后将其提供给 fputcsv(),但是当我在 notepad2 中查看它时它会出现大量双引号,而在 Excel 中查看它时它会作为 1 个条目出现。这是我的价值观:

$line = '"'.$row->petID.'","'.$row->customID.'","'.$row->petName.'","'.trim($row->breedName1).'","'.trim($row->breedName2).'","'.$df->setGender($row->gender).'","'.$df->setSize($row->size).'","'.$df->setAge($row->age).'","'.$description.'","'.$row->pType.'","'.$df->setStatus($row->status).'","","'.$row->isAltered.'","'.$ND.'","'.$NC.'","'.$NK.'","'.$df->isHousetrained($row->housebroken).'","'.$df->isDeclawed($row->declaw).'","'.$df->isSpecialNeeds($row->isSpecial).'","'.$df->isMix($row->breed2).'","'.$PhotoURL1.'","'.$PhotoURL2.'","'.$PhotoURL3.'"';

使用文本编辑器会出现这样的结果: """13651"","""",""jack"",""吉娃娃"",""博美犬"",""M"​​",""S"",""宝贝"",""杰克和何塞出生于一只可爱的 7 磅吉娃娃/博美犬混血儿,他们作为流浪狗被带到收容所。他们将在 8 月中旬为新家断奶。虽然父亲不详,但幼犬很可能仍然很小。请访问我们的网站 www.dogswithoutborders.org 为 Jack 或 Jose 提供在线收养申请,并了解有关我们收养博览会的更多信息。"",""Dog"",""A"","""",""0" ","""","""","""","""","""","""",""1"",""http://photos.petfinder.com/photos/US/CA/CA1087/20460152/CA1087.20460152-1-x.jpg"","""" ,"""""

当我删除手动添加的“(s)时,我在开始时只得到一个,在最后得到一个。有什么想法吗?

【问题讨论】:

    标签: php csv fputcsv


    【解决方案1】:

    使用内置的 CSV 功能!

    <?php
        $fp = fopen('file.csv', 'w');
        fputcsv($fp, array('item1','items'));
        fclose($fp);
    ?>
    

    参考

    【讨论】:

      【解决方案2】:

      你可以使用这个 PHP 函数,而不是自己做:

      fputcsv
      

      文档在这里:http://php.net/manual/en/function.fputcsv.php

      如文档中所述,您可以...

      //put your data in an array like this:
      $list = array (
          array('aaa', 'bbb', 'ccc', 'dddd'),
          array('123', '456', '789'),
          array('"aaa"', '"bbb"')
      );
      //open the output file for writing
      $fp = fopen('file.csv', 'w');
      
      //write to the csv file (comma separated, double quote enclosed)
      foreach ($list as $fields) {
          fputcsv($fp, $fields,',','"');
      }
      //close the file
      fclose($fp);
      

      【讨论】:

      • 感谢您的信息。唯一的问题是 fputcsv 似乎选择并选择了在周围放置双引号的内容。我的供应商要求我双引号所有值。
      • @Wally Kolcz 嗯,你尝试过我刚刚添加的示例吗?
      猜你喜欢
      • 2013-03-08
      • 2016-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-20
      • 1970-01-01
      相关资源
      最近更新 更多