fputcsv() 为每个条目添加引号?
fputcsv() add quotes to every entry?
使用此代码创建 CSV 导出文件:
foreach ($data_for_export as $row) {
$data = [];
array_push($data, $row->product_id);
array_push($data, $row->product_name);
array_push($data, $row->product_code);
array_push($data, $row->text);
fputcsv($file, $data);
}
fclose($file);
示例输出为:
2131,"Toys set 35", TSSET35, "Lorem ipsum dolor sit amet"
我试过:
preg_replace("/([a-z0-9]+)/i", '""', $row->product_id)
'"'.$row->product_id.'"'
有了 "preg_replace" 我得到了比需要更多的报价...
我需要所有出口项目的报价,我该怎么做?
通过strval函数将所有数据转换为字符串,然后尝试使用fwrite instead of fputcsv:
function push(&$data, $item) {
$quote = chr(34); // quote " character from ASCII table
$data[] = $quote . addslashes(strval($item)) . $quote;
}
foreach ($data_for_export as $row) {
$data = [];
push($data, $row->product_id);
push($data, $row->product_name);
push($data, $row->product_code);
push($data, $row->text);
// separate array items by ',' and add the End-Of-Line character
fwrite($file, implode(',', $data) . PHP_EOL);
}
fclose($file);
使用此代码创建 CSV 导出文件:
foreach ($data_for_export as $row) {
$data = [];
array_push($data, $row->product_id);
array_push($data, $row->product_name);
array_push($data, $row->product_code);
array_push($data, $row->text);
fputcsv($file, $data);
}
fclose($file);
示例输出为:
2131,"Toys set 35", TSSET35, "Lorem ipsum dolor sit amet"
我试过:
preg_replace("/([a-z0-9]+)/i", '""', $row->product_id)
'"'.$row->product_id.'"'
有了 "preg_replace" 我得到了比需要更多的报价...
我需要所有出口项目的报价,我该怎么做?
通过strval函数将所有数据转换为字符串,然后尝试使用fwrite instead of fputcsv:
function push(&$data, $item) {
$quote = chr(34); // quote " character from ASCII table
$data[] = $quote . addslashes(strval($item)) . $quote;
}
foreach ($data_for_export as $row) {
$data = [];
push($data, $row->product_id);
push($data, $row->product_name);
push($data, $row->product_code);
push($data, $row->text);
// separate array items by ',' and add the End-Of-Line character
fwrite($file, implode(',', $data) . PHP_EOL);
}
fclose($file);