2016-06-28 2 views
-1

Я использовал http://php.net/manual/fr/function.fgetcsv.php Документацию для использования функции fgetcsv для импорта файла csv в моей базе данных (мой сервер не позволяет мне использовать функцию LOAD DATA INFILE sql).Использование разделителя «#» в fgetcsv?

Но мои файлы CSV содержит «#» разделители символов строки, а не \ п

Я не знаю, как сделать 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 файл содержит «#» разделители символов строки, а не \ п

Тогда это не правильный файл CSV.

Я не знаю, как сделать fgetcsv знать, что это линия сепаратор ...

Нет, потому что это не является допустимым разделительной линией. Вы должны сделать это действительным CSV, заменив все эти # на предыдущий синтаксический анализ \n.

* EDIT **

Тогда вы либо сделать 2 шага импорта -> конвертировать # в ЛФ, а затем использовать fgetcsv() или вы можете попробовать использовать вместо str_getcvs(), однако это потребовало бы, чтобы читать и хранить весь входной файл в памяти, поскольку вам все равно придется разбить данные на отдельные строки (то есть с explode()).

+0

Спасибо за ваш ответ, но это не мой экспортированный файл. Это внешняя компания, которая экспортирует файл в мой ftp. – shqnks