当字符串包含逗号时,无法解析CSV数据

时间:2010-08-18 21:15:49

标签: php parsing csv

我正在解析通过php发送给我的CSV数据源。我将每一行转换为一系列值。

这是我的代码:

$fp = fopen('data.txt','r');

while (!feof($fp))
{
    $line = mysql_real_escape_string(fgets($fp));

    $value_array = explode(',', $line);
}

但如果其中一行看起来像这样:

  

“some company,inc。”,XC34ET,500

我得到4个值:

  1. “某公司

  2. INC。“

  3. XC34ET

  4. 500

  5. 当我真的想要这3个值时:

    1. 某公司,公司

    2. XC34ET

    3. 500

    4. 如何更新我的脚本以解决此问题?

2 个答案:

答案 0 :(得分:4)

有一个用于解析csv文件的内置函数:fgetcsv()。只需用它替换fgets()调用即可。 使用'“'作为$ enclosure参数的值可以解决您的问题。

答案 1 :(得分:1)

您可以使用str_getcsv()读取该行并解析它,返回一个数组