我有一个问题,我有一个“文本”字段,其中包含一堆从单词等粘贴的“故事”,因此包括换行符和制表符之类的内容。我想导出到 CSV 来维护这些或能够将它们取回。
但我不知道如何逃脱它们所以它有效?当我导出 CSV 时,我得到一个 CSV,其中包含多行/列上的一堆单句。
我尝试用其他内容替换新闻行,但我一直在搞砸。有没有一种简单的方法可以在不破坏数据的情况下做到这一点?
CSV 不是任意文本的好格式,但您可以尝试
SELECT ... INTO OUTFILE '/tmp/text.csv'
FIELDS ESCAPED BY '""' TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM yourtable
尝试这样的事情:
$line.=preg_replace("/\n\t/", ";", preg_replace("/,/", ";", $f['field5'])).',';
或者
$line.=preg_replace("/\n/", ";", preg_replace("/,/", ";", $f['field5'])).',';
最后你必须首先显示$line
包括标题。
$f['field5']
- 来自数据库的数据。
您可以尝试 a SELECT
with a search and replace 之类的东西,在其中搜索换行符 of'\n'
并将其替换为 nothing ''
。ASELECT
实际上不会替换表本身中的任何内容,除非您执行了UPDATE
. 请参见下面的查询示例。
(SELECT 'columnA', 'columnB', 'columnC')
UNION
(SELECT `columnA`, REPLACE(`columnB`, '\n', ''), `columnC`
FROM `yourtable`
INTO OUTFILE '/tmp/text.csv'
FIELDS OPTIONALLY ENCLOSED BY '"' TERMINATED BY ',' ESCAPED BY '"'
LINES TERMINATED BY '\n');