我正在使用 .csv 将数据导出到 CSV 文件fputcsv。我有正在写入的字符串,但是我要求数据用双引号括起来。
foreach ($orderDetails['lines'] as $line) {
fputcsv($orderImportCsv, $line);
}
Run Code Online (Sandbox Code Playgroud)
在编辑器中打开时会创建以下内容(崇高)
L,M3344,,100
L,M3356,,50
我需要将这些字段中的每一个都用双引号括起来。
所以我试过这个:
foreach ($lines as &$line) {
foreach ($line as &$column) {
$column = '"' . $column . '"';
}
}
Run Code Online (Sandbox Code Playgroud)
所以基本上这应该通过每一行字段并将其包装在“”中。但是运行后,我得到以下输出:
"""L""","""M3344""","""""","""100"""
"""L""","""M3356""","""""","""50"""
它现在在变量周围放置了 2 组双引号!
有一个更好的方法吗?
更新
我知道fputcsv有两个可选参数。分隔符和外壳。但是我相信外壳默认为“”,但仅当字符串被拆分为单独的单词时。
由于您自己插入外壳,因此您必须指示 PHP 不使用任何外壳。似乎没有记录的方法来做到这一点,但使用空格似乎有效:
<?php
foreach($orderDetails['lines'] as $line){
foreach ($line as &$column) {
$column = '"' . $column . '"';
}
unset($column);
fputcsv($orderImportCsv, $line, ',', ' ');
}
Run Code Online (Sandbox Code Playgroud)