php导出csv 长文本带换行符的问题

导出csv文件的时候 有的长文本带换行的自动就折行了 可是 我想让他在单元格内换行

贴代码

$str = "操作人,操作,修改项,修改前,修改后,操作时间\n";
$str = iconv('utf-8','gb2312',$str);
while($r=$empire->fetch($sql))
{$data[]=$r;
    $name      = '"'.getUserName($r['uid']).'"'; //中文转码
    $action  = '"'.iconv('utf-8','gb2312',str_replace(array("\n","\r",'"'),array("//","//","'"),urldecode($r['action']))).'"';
    $time    = '"'.date('Y-m-d H:i:s',$r['time']).'"';
    $old     = '"'.str_replace(array("\n","\r",'"'),array("//","//","'"),urldecode($r['old'])).'"';
    $new     = '"'.str_replace(array("\n","\r",'"'),array("//","//","'"),urldecode($r['new'])).'"';
    $pro_name= getHierarchyName($r['type_id']);
    $name  =  $name ?  $name :'已删除或禁用';
    $str .= "{$name},{$action},{$pro_name},{$old},{$new},{$time}\n"; //用引文逗号分开
}
$file_name = $file_name? $file_name:'工作组操作日志';
$filename = $file_name.'.csv'; //设置文件名
export_csv($filename,$str);

字符串替换什么的都尝试了 求教
图片描述

问题解决了 一个不该出换行符的字段出了换行符。很是蛋疼

阅读 8k
3 个回答

谢邀!

由于本人用手机查看回复,如果存在排版问题谅解则个。如果只是单元格内换行使用双引号加r没问题,如果说是文本内用单引号不解析换行符就可以了。不知道理解你的意思对不对……

我刚才测试了一下,文件hello.csv的内容是下面这种形式

hello,"nihao
hehe"
haha,"buhao
woca, nihao"

是可以换行的,同时不影响显示结果,

clipboard.png
不谢。另外建议题主去百度了解一下csv的文件内容格式的用法,很简单,我就不扩展了。

不要直接 echo csv 字符串,用 fputcsv(),你会发现新世界的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题