我的表格中有很多字段,我已经序列化以保持字段数量下降。对于其他一切工作完美的存储数据,在需要时我可以使用以下作为示例:
$dateofbirth = unserialize($row['dateofbirth']);
$dobday = $dateofbirth[0];
$dobmonth = $dateofbirth[1];
$dobyear = $dateofbirth[2];
出生日期存储为dd,mm,yyyy
,其他一切我称之为罚款。我现在的问题是,我尝试使用fputcsv
使用以下内容创建CSV文件:
$result = mysqli_query($con, 'SELECT u.user_id, b.dateofbirth FROM Users u INNER JOIN Basic b USING (user_id) ORDER BY user_id DESC');
$fp = fopen('latest.csv', 'w');
fputcsv($fp, array('User ID', 'DOB' ));
CSV生成,但对于CSV中的出生日期列,它输出为"*a:3:{i:0;s:2:"03";i:1;s:2:"02";i:2;s:4:"1986";}*"
,因为它显然仍然是序列化的。处理这些领域的最佳和最简单方法是什么?
非常感谢提前。
答案 0 :(得分:0)
你可以试试这个:
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=latest.csv");// Disable caching
header("Cache-Control: no-cache, no-store, must-revalidate"); // HTTP 1.1
header("Pragma: no-cache"); // HTTP 1.0
header("Expires: 0"); // Proxies
$fp = fopen('latest.csv', 'w');
while($row = mysqli_fetch_array($result)){
fputcsv($fp,array($row[0],$row[1]));
}
//或者你可以使用上面提到的标题
或为出生日期设置一些格式,如:
$rowdob = date("M d, Y - g:i:s A", strtotime( $row[0] ) );
在while循环中并将$ rowdob传递给fputcsv();