【发布时间】:2017-09-11 13:38:26
【问题描述】:
我想将一个以逗号分隔的字符串拆分成一个数组。 str_getcsv 似乎是一个不错的选择,但如果它位于值的开头和结尾,它会删除封闭字符 (")。我想保留附件字符。考虑字符串$str = 'foo,"bar","qwe,rty"'。 str_getcsv($str)返回
['foo', 'bar', 'qwe,rty']
我想要
['foo', '"bar"', '"qwe,rty"']
我怎样才能做到这一点?
【问题讨论】:
-
如果您想在 CSV 中表达值
"bar",那么您需要将终止符适当地转义为""bar""(或者可能是"\"bar\"",具体取决于您正在使用的 CSV 方言)和)。您看到的是 CSV 解析器的正确行为。 CSV 中的...,"bar",...表示..., bar, ...。 -
谢谢@deceze。实际上,我没有使用 CSV。我只想拆分一串逗号分隔值,
str_getcsv似乎是一个不错的解决方案。 -
如果它不是现有的标准化格式,您可能必须为此编写自己的解析器。