我正在尝试通过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))
感谢任何帮助。
答案 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>
标记。这样您就可以在以后重新设置换行符。