mac+php+csv,操作系统 - php csv导出 在window下office打开正常,但在MAC系统下打开只有一列...

csv导出代码:

public function export_csv(){

if(($id = $this->get_input('resultId')) == '') {

$this->msg('参数有误');

}

$result = call_mod_func('admin/activity_mod', 'get_result', array($id));

$str = "姓名,邮箱,手机,微信号" . PHP_EOL;

$str = iconv('utf-8', 'gb2312', $str); //中文转码

foreach($result['rows'] as $row) {

$name = iconv('utf-8', 'gb2312', $row['name']);

$email = $row['email'];

$mobile = $row['mobile'];

$weixinid = iconv('utf-8', 'gb2312', $row['weixinid']);

$str .= $name . ',' . $email . ',' . $mobile . ',' . $weixinid . PHP_EOL;

}

$filename = date('Ymd', gettime()) . '.csv'; //设置文件名

header("Content-type:text/csv");

header("Content-Disposition:attachment;filename=".$filename);

header('Cache-Control:must-revalidate,post-check=0,pre-check=0');

header('Expires:0');

header('Pragma:public');

echo $str;

}

这段代码

苹果系统下,用excel打开只有一列:

bVlzYe

windows系统下,用excel打开有4列:

bVlzYf

请问这代码要怎么修改?才能兼容多个系统呢?

【如果用分号分隔的话,就MAC系统下正常,windows下只有一列】

回复内容:

csv导出代码:

public function export_csv(){

if(($id = $this->get_input('resultId')) == '') {

$this->msg('参数有误');

}

$result = call_mod_func('admin/activity_mod', 'get_result', array($id));

$str = "姓名,邮箱,手机,微信号" . PHP_EOL;

$str = iconv('utf-8', 'gb2312', $str); //中文转码

foreach($result['rows'] as $row) {

$name = iconv('utf-8', 'gb2312', $row['name']);

$email = $row['email'];

$mobile = $row['mobile'];

$weixinid = iconv('utf-8', 'gb2312', $row['weixinid']);

$str .= $name . ',' . $email . ',' . $mobile . ',' . $weixinid . PHP_EOL;

}

$filename = date('Ymd', gettime()) . '.csv'; //设置文件名

header("Content-type:text/csv");

header("Content-Disposition:attachment;filename=".$filename);

header('Cache-Control:must-revalidate,post-check=0,pre-check=0');

header('Expires:0');

header('Pragma:public');

echo $str;

}

这段代码

苹果系统下,用excel打开只有一列:

bVlzYe

windows系统下,用excel打开有4列:

bVlzYf

请问这代码要怎么修改?才能兼容多个系统呢?

【如果用分号分隔的话,就MAC系统下正常,windows下只有一列】

这问题很难?竟然没人回答。。。。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值