用PHP輸出一個csv文件foreach ($old['lines'] as $line) { fputcsv($new, $line);
}比如$line的內容是:CA,12,YMU,13,YMU,12,N我希望的數據:"CA","12","Y""MU","13","Y""MU","12","N"我這樣做foreach ($lines as &$line) { foreach ($line as &$column) { $column = '"' . $column . '"';
}
}結果出來每一列數據上都被加了兩個雙引號:""CA"",""12"",""Y""""MU"",""13"",""Y""""MU"",""12"",""N""
2 回答

慕標琳琳
TA貢獻1830條經驗 獲得超9個贊
比較不正規的方法,若字段中含有雙引號,解析的時候會出錯:
<?php $fp = fopen('php://stdout', 'w'); fputcsv($fp, array_map(function ($item) { return '"' . $item . '"'; }, array(1,2,'b c','\'ss"')), ',', ' '); fclose($fp);
"1","2", "b c" ,"'ss""

紅糖糍粑
TA貢獻1815條經驗 獲得超6個贊
fputcsv方法有4個參數,如下:
fputcsv(file,fields,seperator,enclosure);
file 保存的文件名
fields 數據數組
seperator 字段分隔符,默認是逗號
enclosure 字段包圍符,默認是雙引號
你問題的點是第4個參數enclosure,由于你沒有傳(實際也不用傳),默認就是雙引號,所以經過你多余的處理后被加了2次。
- 2 回答
- 0 關注
- 141 瀏覽
添加回答
舉報
0/150
提交
取消