如果我们说我有
$headers = array(
"userid",
"fname",
"lname");
我希望它们作为标题行(csv的最顶部)放置,用逗号分隔,并用双引号括起来。
我已经尝试了
$fp = fopen('data.csv', 'w+');
fputcsv($fp,$headers,',','"');
fclose($fp);
他们没有用双引号括起来......怎么做?
答案 0 :(得分:2)
您可以尝试强制它:
$headers = array(
'"userid"',
'"fname"',
'"lname"'
);
通过将值包装在实际引号中,然后只使用空白的外壳字符串:
$fp = fopen('data.csv', 'w+');
fputcsv($fp,$headers,',','');
fclose($fp);
强制它在“需要包含”字符中排除引号(PHP检查外壳字符是否已经在字符串内,并在必要时转义+封闭)。
但是,在新版本的PHP中,您将收到此错误:
fputcsv(): enclosure must be a character
在这种情况下,我建议您自己动手,如下:
function put_csv_headers($handle, $headers, $separator, $enclosure) {
// [add some error checks here, of course]
array_walk($headers, function(&$item, $i, $enc) {
$item = $enc . $item . $enc; // wrap the header with the enclosure
}, $enclosure);
fputs($handle, implode($separator, $headers));
}
和
$headers = array('userid', 'fname', 'lname');
$fp = fopen('data.csv', 'w+');
put_csv_headers($fp, $headers, ',', '"');
fclose($fp);