You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP导出CSV时如何不修改数据库仅移除商品描述中的多余换行符

问题解决方法

你的代码存在4处错误导致替换不生效:

  • str_replace() 是返回替换结果的函数,不会直接修改传入的原字符串,你没有接收返回值,替换操作无效果
  • 用单引号包裹\n时,PHP不会解析为换行符,只会匹配字面量的反斜杠加字母n的组合
  • 你构造写入CSV的行数据时,仍然使用了未处理的$info['descr'],没有使用处理后的$descr变量
  • 操作系统不同换行符存在\n、\r、\r\n三种格式,仅替换\n无法清理干净所有换行

修正后代码如下:

$file_open = fopen("file_empik.csv", "w");
fputcsv($file_open, $heders); // 注意这里变量名可能是拼写错误,大概率应为$headers

foreach($title_from_shopify_table as $info)       
{
    // 同时替换三种换行符,接收替换后的结果
    $descr = str_replace(["\r", "\n", "\r\n"], '', $info['descr']);
    // 如果需要保留换行逻辑仅避免CSV格式错乱,可把上方的空字符串替换为空格' '

    $line_info = array('', $info['title'], $descr, $info['sku'], $info['imgsrc'], '23%', $info['vendor']);
    
    fputcsv($file_open, $line_info);
    
}
fclose($file_open);

return $products_data;

修改后无需修改数据库内容,即可在写入CSV前清理掉商品描述内的所有换行,不会触发CSV格式错乱问题。

内容的提问来源于stack exchange,提问作者Kasia13130

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 00:57:00