2016-06-28 44 views
-1

我使用http://php.net/manual/fr/function.fgetcsv.php文档来使用fgetcsv函数来导入我的数据库中的csv文件(我的服务器不允许我使用LOAD DATA INFILE sql函数)。在fgetcsv中使用“#”分隔符?

但我的CSV文件含有“#”字符的行分隔符,而不是一个\ n

我不知道如何使fgetcsv知道这是行分隔符...

这里是我的代码:

$file = fopen("Contenu/BD/test.csv", "r"); 
    fgetcsv($file); 
    while(($data = fgetcsv($file, 10000, ";")) !== FALSE){ 
     $num = count($data); 
     for ($c=0; $c<$num; $c++){ 
      $col[$c] = $data[$c]; 
     } 

     ((INSERT SQL)) 

    } 
    fclose($file); 

非常感谢您的回答!

+0

如果你有'#'作为记录分隔符,你实际上没有csv文件;也许你应该考虑用'\ n'替代## –

回答

1

但我的CSV文件含有 “#” 字符的行分隔符,而不是一个\ n

然后,这是无效的CSV文件。

我不知道如何使fgetcsv知道这是行分隔符...

没有,因为这不是一个有效的行分隔符。在解析之前,应将所有这些#替换为\n,使其成为有效的CSV。

*编辑**

然后你要么做2步导入 - >转换#劳动力调查,然后使用fgetcsv()或者你可以尝试使用str_getcvs()代替,然而这将需要阅读,并保持整个输入文件内存,因为您仍然需要将数据分成不同的行(即使用explode())。

+0

感谢您的回答,但这不是我的导出文件。这是一个将文件导出到我的ftp的外部公司。 – shqnks