php - 强制 fputcsv 对*所有*字段使用外壳

标签 php csv fputcsv

当我使用 fputcsv 时要向打开的文件句柄写出一行,PHP 会在它认为需要它的任何列中添加一个封闭字符,但会在其他列中不包含封闭字符。

例如,你可能会得到这样一行

11,"Bob ",Jenkins,"200 main st. USA ",etc

如果没有在每个字段的末尾附加一个伪造的空格,是否有任何方法可以强制 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(' ')
)

没有“始终包含”选项。

关于php - 强制 fputcsv 对*所有*字段使用外壳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2489553/

相关文章:

c# - 使用正则表达式像字符串一样拆分 csv

csv - 为什么 .CSV 文件在 postman 中下载为 .TXT?

php - 查找并替换可能部分位于 html 标记内的字符串

php - Cakephp语言翻译不打印值

php - Laravel 请求中的用户 ID 参数

php - Codeigniter $_FILES 没有上传所有文件

javascript - 正则表达式,将每个 CSV 字段用双引号引起来

php - 如何使用 fputcsv PHP 将多维数组导出到特定的 .csv 布局

php fputcsv 和封闭字段