【问题标题】:how to put a space after decimal value in csv using fputcsv?如何使用 fputcsv 在 csv 中的小数点后放置一个空格?
【发布时间】:2017-09-22 07:27:03
【问题描述】:

这是我用来将数据写入 csv 文件的代码。 除十进制值外,一切正常!

$row[] = '14.31 ';
fputcsv($fp, $row, ',', '"');

我在 .31 "14.31 " 之后有一个空格,所以长度应该是 "6",现在我得到了 "5"

如何在单元格中包含这个空间?

【问题讨论】:

  • 无法复制,工作正常
  • 您确定用于查看此 csv 的电子表格文件没有格式化内容吗?在文本编辑器中查看文件,而不是在 MS Excel 中
  • P.S.您没有使用PHPExcel,而且 csv 文件不是 xls 文件,那么为什么要使用标签?
  • 它正在格式化空间!但我想要空间! @马克贝克
  • 标签被删除@Mark

标签: php csv fputcsv


【解决方案1】:

将值赋给变量并转换为字符串 例如:$test ='14. 31'; $row[] =(string) $test;

或者使用双引号 例如:$test = "14.31" ;

【讨论】:

    【解决方案2】:

    对这个问题很感兴趣,跑了 4 个案例来看看哪个提供了预期的结果,案例 4 应该可以解决问题:

    <?php
    $fields[] = "case 1 - chr(32)";
    $fields[] = "14.31 " . chr(32); // NO trailing space in .csv
    
    $fields[] = "case 2 - chr(160)";
    $fields[] = "14.31 " . chr(160); // 2 trailing spaces in .csv
    
    $fields[] = "case 3 - rtrim + chr(32)";
    $fields[] = rtrim("14.31 ", " ") . chr(32); // NO trailing space in .csv
    
    $fields[] = "case 4 - rtrim + chr(160)";
    $fields[] = rtrim("14.31 ", " ") . chr(160); // 1 trailing space in .csv
    
    $fp = fopen('myfile.csv', 'w');
    
    fputcsv($fp, $fields);
    
    fclose($fp);
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-03
      • 1970-01-01
      • 1970-01-01
      • 2014-08-13
      • 1970-01-01
      • 1970-01-01
      • 2019-06-19
      • 1970-01-01
      相关资源
      最近更新 更多