2016-06-28 52 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