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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PHP, importer un csv : problème retour charriot à supprimer

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

par @rthur » 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)

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

par Patriboom » 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.

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

par marcell » 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 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!