【问题标题】:PHP code not parsing my CSV file correctlyPHP 代码无法正确解析我的 CSV 文件
【发布时间】:2013-12-23 02:04:42
【问题描述】:

我有一个 CSV 文件,我想用 PHP 解析它:

Access_Code,Home_Address, Work_Address

1, 100 Broad St, 100 Main St

2, 200 Broad St, 200 Main St

3, 300 Broad St, 300 Main St

这是我的代码:

$file = fopen($target_path,"r");
while(!feof($file))
{
$groups2 = fgetcsv($file,",");
print_r($groups2);
}
fclose($file);

我不想要任何花哨的东西,只是想弄清楚为什么会发生这种情况:

输出:

Array ( [0] => Access_Code [1] => Work_Address [2] => Home_Address 1 [3] => 100 Broad St [4] => 100 Main St 2 [5] => 200 Broad St [6] => 200 Main St 3 [7] => 300 Broad St [8] => 300 Main St )

我应该有一个包含 12 个对象的数组,不是吗?为什么我的第一列被第三列(即 Home_Address 1、200 Main St 3 等)吞没了?

谢谢!!

【问题讨论】:

  • 您应该有 4 个单独的数组...您的行尾字符已关闭(是否可能与 MAC 相关 & \r 而不是 \n?),找出它是什么,也许使用auto_detect_line_endings
  • 我同意,看起来他的所有数据都在一行上。因此,为什么 access_code 总是前面的 work_address 的一部分

标签: php excel parsing csv


【解决方案1】:

正如 cmets 中提到的 wrikken,并建议/链接到。

你的行尾是错误的。

行尾通常由回车 + 换行 \r\n (windows) 完成,只需回车 \r (mac) 或换行 \n (linux/unix)。

尝试在 PHP 顶部使用 ini_set("auto_detect_line_endings", true);,如 Wrikken 指向此项目的 PHP 手册的链接中所建议的那样。

如果这不能解决问题,请检查分隔符(通常是行尾)是否设置正确,在此处创建 CSV 文件。

【讨论】:

    【解决方案2】:

    我输入了您的示例数据和代码,它返回了以下数组。检查您的数据是否真的是这种格式。如果是,请使用 file() 读取数组并检查 eol 字符,因为 file() 保留了 eol 字符(代码见下文)。

    Array ( [0] => Access_Code [1] => Home_Address [2] => Work_Address ) 
    Array ( [0] => 1 [1] => 100 Broad St [2] => 100 Main St ) 
    Array ( [0] => 2 [1] => 200 Broad St [2] => 200 Main St ) 
    Array ( [0] => 3 [1] => 300 Broad St [2] => 300 Main St )
    

    数据:

    Access_Code,Home_Address, Work_Address
    1, 100 Broad St, 100 Main St
    2, 200 Broad St, 200 Main St
    3, 300 Broad St, 300 Main St
    

    检查eol字符:

    $a = file("../x.txt");
    $hex='';
    for ($i=0; $i < strlen($a[0]); $i++)
    {
        var_dump(ord($a[0][$i]));
    }
    

    【讨论】:

      猜你喜欢
      • 2019-03-05
      • 2017-07-19
      • 2017-07-01
      • 1970-01-01
      • 2014-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多