写入CSV文件时强制字符串数据类型

时间:2015-11-10 15:33:01

标签: php csv

在PHP中,有没有办法强制将值“00123”作为字符串插入CSV文件?

这样,当您打开CSV文件时,该值将保持00123,而不是删除前导零并显示123

我想要实现这一目标的主要原因是一个zipcodes列表,而有多个zipcodes有前导零,我希望这些值反映出来。

<?php
if( $fh = fopen('filename.csv','w') ){

    $line = ['00123'];

    fputcsv($fh,$line);

    fclose($fh);
}

2 个答案:

答案 0 :(得分:1)

CSV没有类型。使用,"..",语法编写的值仅限定值以消除值本身内,的使用歧义;这并不意味着该值是“字符串”。

我怀疑在导入Excel等时你的值会被破坏。 CSV无法提供解决方案;您只能使用导入向导导入文件,并指定该列应按原样使用,而不是强制转换为数字。 (这可能会或可能不会真正起作用,具体取决于您正在使用的Excel版本。)

如果您不希望每次都这样做,那么您应该生成一个XLSX文件, 具有类型。

答案 1 :(得分:0)

我想没有办法做到这一点因为“CSV”文件只是“逗号分隔值”

您必须使用csv import的编辑器选项。