fputcsv和整数typcasting到string

所以我有一个线我想做一个fputcsv有一些整数(我需要被视为string,但他们是数字)。 这些整数具有前导零,当我做fputcsv时被切断,但我不希望发生这种情况,有没有办法解决这个问题呢? 我试着只是把(string)typcast和把我的variables放在引号中,但是到目前为止我发现的唯一方法就是在整个数字周围加上引号,当我打开它时,引用csv文件中的引号优秀,我不想发生。 有谁知道一个方法来得到这个工作? 我认为fputcsv只是自动分配这个variables的types出于某种原因,使之成为一个整数或东西…

编辑示例文本:

我fputcsv:

02305109 

我在Excel中打开的csv文件中获得的内容:

 2305109 

但是当我使用vi打开所述csv文件时,前导零仍然存在。 真奇怪。

对于我想要的string来说,我也遇到了同样的问题。 用单引号将其包裹起来,使其可评估。

'=“'。$ yourNumber。'”'

Excel正在将该值解释为一个数字并将其格式化。 这与php无关。

这SUpost有一些信息: https : //superuser.com/questions/234997/how-can-i-stop-excel-from-eating-my-delicious-csv-files-and-excreting-useless-da

尝试使用空字符预先(或附加)前导零整数。

 $csv[0] = 02392398."\0"; 

输出它作为一个公式,所以:

$ line [“phone”] =“= \”“。$ line [”phone“]。”\“”;

在数据的开头添加单引号可以解决问题。

即'930838493828584738而不是930838493828584738,它转换成这个934E + n

如果csv文件是由第三方提供的,这可能是一个问题。

尝试一个主要的撇号(单引号)。 IIRC保持前导零,但不出现在Excel中。

使用"00000000"格式化列

这具有保存保存格式的优点

您只需要在数字的开头添加一个报价:

 '123456 

而excel不会将这个单元格格式化为一个数字。