0';在使用php函数写入csv时,s被截断
我尝试使用php函数将数据写入csv 但0在写入csv时被截断0';在使用php函数写入csv时,s被截断,php,csv,Php,Csv,我尝试使用php函数将数据写入csv 但0在写入csv时被截断 $data = array ( 'aaa,bbb,ccc,dddd', '000123,456,789','"aaa","bbb"'); $fp = fopen('data.csv', 'w'); foreach($data as $line) { $val = explode(",",$line); fputcsv($fp, $val); } fclose($fp); 你可能会发现是Excel等吃掉了0个字符(你
$data = array ( 'aaa,bbb,ccc,dddd', '000123,456,789','"aaa","bbb"');
$fp = fopen('data.csv', 'w');
foreach($data as $line)
{
$val = explode(",",$line);
fputcsv($fp, $val);
}
fclose($fp);
你可能会发现是Excel等吃掉了0个字符(你可以通过在记事本中打开csv文件(或任何你最喜欢的文本编辑器)并查看它们是否在那里来测试这一点) 如果不是这样,请尝试使用以下行:
fputcsv($fp, (string) $val);
以防万一,该变量不知何故被转换为某个整数。我认为Excel将其视为一个数字,并省略了0 您可以尝试这样做:
fputcsv ($fp, "='".$val."'");
查看它是否有效如果您试图在excel或office中打开csv,它将截断前导零。
当您在零之前用“\t”构造字符串以避免0截断时我认为您的应用程序会删除它们,而不是您的代码。例如,Excel会尝试识别数据类型并以最适合的方式对其进行解析。将数字视为字符串可能会有所帮助:“'000123'、'456'、'789''我尝试了这个''000123'、'456'、'789”,但引号显示在excel单元格中…如果值包含引号字符,则容易出错。