【发布时间】:2011-08-05 12:36:47
【问题描述】:
我正在尝试通过 PHP 在 MySQL 数据库上运行 csv 导出。一切正常,直到我进入描述字段。每行都以文本字段中的新行结尾。因此,对于文本字段中的每一行,我都会在 CSV 中得到一个新行。当我想要的只是行尾的新行时。
到目前为止,我已经尝试了一些解决方案,包括:
REPLACE(description, '\r\n', '\n')
str_replace( array( "\r" , "\n" ) ,'\n' , $data);
description = REPLACE(description, description, TRIM(BOTH '\r\n' FROM description))
感谢任何帮助。
【问题讨论】:
-
新行对内容有多重要——如果你去掉它们,是否会影响文本的含义?需要重新放回去吗?
-
在这种情况下,新行并不是严格需要的。但是对于将来的参考,如果您可以以任何方式建议可以在不丢失任何新行的情况下完成它(即导出),那将是很棒的。
-
一个合适的 CSV 库应该为您处理转义数据。谷歌搜索了一下,我对 php 在这件事上不是很有信心,因为我在这个过程中找不到任何不需要文件 IO 的选项。我认为一种选择可能是在前面放置一个反斜杠或换行符。
-
@Paul - 您需要将 something 嵌入到使用的最终输出中,而不是换行。请参阅我的回答以获取一些建议。
-
干杯,伙计们。是的,描述已经嵌入了 html,因此不需要换行符,但我从没想过用反斜杠转义新行。这就是我一直在寻找的答案。谢谢。