【问题标题】:csv parsing, exploding avoiding ""csv解析,爆炸避免“”
【发布时间】:2012-01-23 13:29:25
【问题描述】:

我有一个用 php 解析的 csv 文件(非常大)。

现在是这样的。

x,y,z,value,etc

但有时是这样的:

x,"blah,blah,blah",z,value,etc

这样做:explode(',',$string); 如果是 "" 值,也会爆炸其中的所有内容。

array([0]=>x,[1]=>"blah,[2]=>blah,[3]=>blah"....)

我该怎么做才能拥有这个:

array([0]=>x,[1]=>"blah,blah,blah",[2]=>z....)

改为?

谢谢

【问题讨论】:

    标签: php csv explode


    【解决方案1】:

    如果我是你并且不得不使用你所说的方法。我将通过正则表达式解析引号内的文本字符串。

    将 , 替换为 *(例如)

    x,"blah*blah*blah",z,值等

    然后用 , 再次分解字符串

    现在你应该得到一个合适的数组,但现在你有 bla*bla*bla。

    然后对数组执行str_replace

    你应该这样工作..

    这仅适用于您有严格的解析规则..(在本例中为分解);

    【讨论】:

      【解决方案2】:

      不要使用explode,使用fgetcsv

      如果您的 PHP >= 5.3,请使用 str_getcsv 解析字符串。

      【讨论】:

        猜你喜欢
        • 2021-09-19
        • 1970-01-01
        • 1970-01-01
        • 2014-10-17
        • 1970-01-01
        • 1970-01-01
        • 2017-01-22
        • 1970-01-01
        • 2019-03-09
        相关资源
        最近更新 更多