Je suis l'importation d'un csv en utilisant php et depuis le csv peut parfois être grand, je le fais en streaming le fichier 4096 octets à la fois avec le code suivant:PHP fgetcsv et une ligne personnalisée de fin caractère
if(($handle = fopen($file, 'r')) !== false)
{
// loop through the file line-by-line
while(($data = fgetcsv($handle)) !== false)
{
echo var_dump($data);
unset($data);
}
fclose($handle);
}
else
{
echo "unable to open file $file <br>";
}
Certains des csv ont un caractère de fin de ligne non standard ';' et je dois être en mesure de préciser la fin de ligne manuellement afin que fgetcsv devient correctement chaque ligne du csv.
J'ai lu d'autres solutions qui suggèrent à l'aide du paramètre ini:
ini_set("auto_detect_line_endings", true);
Mais cela n'a pas résolu le problème que je reçois ici.
Une solution précédente à ce problème est d'obtenir le fichier entier et modifier toutes les fins de ligne non standard et les remplacer par retour chariot et à la ligne. Cette solution n'est plus valide car la taille de csvs a augmenté. Ce que j'obtiens dans le vidage de var est toutes les lignes du csv au lieu d'une seule ligne du csv. ligne Exemple de CSV:
"col1,col2,col3,col4,col5;col1,col2,col3,col4,col5;col1,col2,col3,col4,col5;"
S'il vous plaît montrer un petit exemple comment votre fichier csv ressemble – Rizier123