PHP, importer un csv : problème retour charriot à supprimer

Petit nouveau ! | 1 Messages

14 sept. 2018, 23:39

Bonjour à tous,
Un peu d'aide serait la bienvenue.. :)

Après des heures de recherches, je vous expose mon problème :

J'ai un fichier .csv, généré via Excel.
Celui ci contient une seule colonne et plusieurs lignes.
J'importe ce fichier via PHP.

L'import se passe sans souci.
Cependant, si j'ai des retours charriots et autres sauts de ligne dans ma cellule excel, ceci est retranscris dans ma base de donnée.

Je souhaiterai supprimer ces retours charriot et retour à la ligne, pour que le texte de chaque cellule à importer soit sur "une ligne".
J'ai utiliser str_replace :
$texteok = str_replace("\n"," ",$texte_avec_retour);
$texteok = str_replace("\r"," ",$texte_avec_retour);
$texteok = str_replace("\t"," ",$texte_avec_retour);

Ce code là fonctionne dans le sens où si je fais un $texteok = str_replace("a","b",$texte_avec_retour); les lettres A sont correctement remplacé par les lettres B puis importées dans la DB.

J'en déduis donc que \n \r \t ne sont pas les bons "codes" pour les retours charriots du csv...

Est ce que quelqu'un pourrait m'aider ?
Merci d'avance !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Mammouth du PHP | 829 Messages

18 sept. 2018, 23:36

Peut-être vaudrait-il la peine de réviser le mode d'importation.
Les fichiers CSV sont particulièrement faciles à gérer.

Tu peux lire ton fichier d'un coup à l'aide de file_get_contents

puis transformer ton contenu en table à l'aide de explode.
Ainsi, si chaque ligne est terminée par un point-virgule, chaque ligne sera dorénavant un item de la table.

Si c'est un fichier de configuration, t'as aussi la fonction parse_ini_file qui te viendra en aide.

Autrement, fais-voir du contenu et du code.
Soyez artisans de paix

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 7748 Messages

19 sept. 2018, 19:17

Tu peux ouvrir aussi ton fichier CSV avec un éditeur qui affichera les caractères de fin de lignes (Scite ou Notepad++ le permettent par exemple)
Quand tout le reste a échoué, lisez le mode d'emploi...