PHP处理CSV文件,用分号

问题描述:

分开后,我已经与以下结构的CSV文件:PHP处理CSV文件,用分号

a; b; c,c c; d 

当我尝试处理它,它说偏移2和3是不确定的。花了我一段时间才意识到这是由,造成的,不知道如何解决这个问题。如果我删除,一切运行良好。

这是我的处理功能:

function process_csv($file) { 

    $file = fopen($file, "r"); 
    $data = array(); 

    while (!feof($file)) { 
     $csvdata = fgetcsv($file); 

     $data[] = explode(';', $csvdata[0]); 
    } 

    fclose($file); 
    return $data; 
} 

试图fgetcsv($file);fgetcsv($file, '"');,但没有帮助。

+5

隔板是第三个参数['fgetcsv'(http://php.net/fgetcsv)。 – mario

+0

谢谢你突出显示! –

你的问题是,fgetcsv默认使用,作为分隔符。您需要将其更改为;。然后,你将不必再explode :)

function process_csv($file) { 

    $file = fopen($file, "r"); 
    $data = array(); 

    while (!feof($file)) { 
     $data[] = fgetcsv($file,null,';'); 
    } 

    fclose($file); 
    return $data; 
} 
+0

哇,耻辱我!我做错了一切。这一定是我无法找到任何与我的问题有关的话题的原因:)非常感谢你,现在一切正常,因为它应该是! –

+3

@Marc,我建议保留$ data的声明。首先,您确定它已正确初始化,其次,如果文件中没有行,则声明不会发生,并且返回值为null。 –

+0

但这是正确的 – Marc