从MySQL文本字段中删除“新行”

时间:2011-08-05 12:36:47

标签: php mysql csv newline

我正在尝试通过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))

感谢任何帮助。

4 个答案:

答案 0 :(得分:4)

为什么要用\n替换它?

尝试将其替换为空字符串,例如''。尝试将\r\n替换为"",将\n替换为""

答案 1 :(得分:2)

换行符并不总是\n ...根据字符编码,它们可以是\r\n\n\r\n\r

如果您能够创建新的csv数据文件并想要将换行更改为html br标签,请查看nl2br()函数,它非常易于使用。如果字符串替换对上述换行符不起作用,请将数据写入硬盘驱动器上的临时文件,然后逐行解析以将所有换行符连接到空格中。 PHP手册中有一些简单的例子。

我实际上遇到了相反的问题,我必须通过已经创建的csv文件并找到换行符。在这种情况下的答案是使用正则表达式,但我很幸运,因为第一列和最后一列数据足够独特,可以解析和捕获其间的所有数据。另一个选择是删除所有换行符并根据列数收集数据。

答案 2 :(得分:1)

我通常使用preg_replace()

preg_replace( "/\r|\n/", "", $data);

但你可以随时使用str_replace()(它更快)

str_replace(array("\r", "\n"), "", $data);

答案 3 :(得分:0)

您可以尝试替换为\\n甚至HTML <br>标记。这样您就可以在以后重新设置换行符。