【发布时间】:2011-01-31 15:47:33
【问题描述】:
我正要问与这里提出的问题相同的问题....Forcing fputcsv to Use Enclosure For *all* Fields
问题是
当我使用 fputcsv 写出一行时 到打开的文件句柄,PHP 将添加 任何列的封闭字符 它认为需要它,但会 保留其他列而不使用 外壳。
例如,您最终可能会得到一个 像这样的线
11,"Bob ",Jenkins,"200 main st. USA "等
没有附加一个虚假的空格 每个领域的尽头,有没有 强制 fputcsv 始终包含的方法 带外壳的列(默认值 到一个 ") 字符?
答案是:
不,fputcsv() 仅包含该字段 在以下条件下
/* enclose a field that contains a delimiter, an enclosure character, or a newline */
if (FPUTCSV_FLD_CHK(delimiter) ||
FPUTCSV_FLD_CHK(enclosure) ||
FPUTCSV_FLD_CHK(escape_char) ||
FPUTCSV_FLD_CHK('\n') ||
FPUTCSV_FLD_CHK('\r') ||
FPUTCSV_FLD_CHK('\t') ||
FPUTCSV_FLD_CHK(' ')
)
没有“始终包含”选项。
我需要创建一个包含每个字段的 CSV 文件...最好的解决方案是什么?
提前谢谢...
【问题讨论】:
-
可以选择更改 php 源吗? IE。在您的情况下,在函数参数中添加一些“始终包含”标志是否可行?