2017-02-03 39 views
0

我读了一个xml文件,并用php编辑了一些值并将它们放入一个csv文件。PHP中的函数来处理字符串中的双引号

某些值可能看起来像这样:

“排版;存有
” Lorem存有
“Lorem存有”
“排版,文字”
LOREM;存有
LOREM “测试” ipsum的
“LOREM ”测试“ 文字”
“LOREM ”TE; ST“ 文字”
“LOREM ”测试“ 文字”
“LOREM ”测试“ IP;总和”

这些值应按照它们的方式放入csv文件中。

我可以编辑这些值是这样的:

  • “排版;存有 - > ”“” 排版;存有 “

    ”Lorem存有 - > “”“ Lorem存有”

    “Lorem存有” - > “” “Lorem存有” “”

    “LOREM;用文字” - > “”“LOREM ; ipsum“”“

    lorem;存有 - > “LOREM; IPSUM”

    LOREM “测试” ipsum的 - > “LOREM ”“ 测试”, “文字”

    “LOREM ”测试“ 文字” - > “” “LOREM ”“ 测试”,”存有 “

    ”LOREM “TE; ST” 文字“ - > ”“ ”LOREM “” TE; ST“”

    “LOREM ”测试“ 文字” - > “” “LOREM ”“ 测试”,”用文字 “” “

    ”LOREM “测试” IP;总和“ - > ”“ ”LOREM “” 测试“,” IP;总和 “””

但是这种方式需要很多if语句。

有没有一个PHP函数来处理它更容易?

问候, ebody

+0

什么是您的代码..? fyi,有[fputcsv](http://php.net/manual/en/function.fputcsv.php)函数 - 但我从来没有尝试过。 –

+0

你的双引号转义策略是什么?只是在他们周围加上额外的引号?这看起来不是一个很好的解决方法。在大多数情况下,你会得到更多的问题。比如说,你的输入文本是这样的:''“lorem”“test ;;”ipsum“”“''。那么战略会是什么?正如你所看到的,不可能知道哪些引用是内容的一部分,哪些引用是“额外的”。我建议用一些其他字符或序列替换引号,或者将它们转义出来,就像''=> \“'一样。 RegEx可能有助于:http://php.net/manual/en/function。preg-replace.php –

回答

2

尝试和addslashes()。

更多详细信息here

+0

但是如果我打开csv,我有像“lorem \”测试\“ip; sum \”的值。 – ebody

+0

是否有任何特殊原因需要用**引号来引号?您自己的替代列表不一致,并且容易出现问题。逃避反斜杠或用其他角色代替它们是要走的路。 –

相关问题