Problème de retour chariot Access => PHP

Fermé
mimihiwatari - 12 sept. 2008 à 12:02
divland Messages postés 194 Date d'inscription dimanche 22 juin 2008 Statut Membre Dernière intervention 4 septembre 2009 - 13 sept. 2008 à 17:28
Bonjour,
Je souhaite actuellement exporter une table, sous ACCESS, en format "txt" pour ensuite récupérer les lignes de ce fichier sous PHP et récupérer les champs qui m'intéressent pour alimenter une autre base de données.
Les champs de la table sous ACCESS ne correspondent pas à la structure de l'autre base, c'est pour cela que je passe par ce procédé.

Mon problème est que, dans ma base j'ai un champ "remarque" qui est du texte libre, provenant d'une textarea par exemple (je ne suis pas la créatrice de cette table ACCESS) et donc certains utilisateurs ont utilisé le retour à la ligne dans leur texte.
Or ce retour à la ligne est interprété dans PHP comme une nouvelle ligne de champs, donc j'ai des lignes tronquées trop tôt.
Je ne sais pas du tout comment résoudre ce problème, j'ai fait des recherches mais rien de convainquant...
Merci pour votre aide !
A voir également:

6 réponses

mouf13 Messages postés 142 Date d'inscription mardi 20 juin 2006 Statut Membre Dernière intervention 22 février 2011 17
12 sept. 2008 à 14:39
est-ce que tu n'as pas moyen de faire un str_replace("\n", "signequelconque", $remarque);
au moins tu n'est plus embeté avec ce retour charriot et tu sais que signequelconque signifie retour à la ligne dans ton ancienne base.
0
mimihiwatari
12 sept. 2008 à 14:46
Eh bien j'ai voulu essayé cette méthode, une fois que j'avais mon fichier sur ma page PHP, mais l'ennui est que :
tu prends la chaine $remarque, donc tu considères que je peux récupérer le champ "remarque" en entier.
Or, comme certaines remarques contiennent elles-même des retours chariots, ma ligne est tronquée à cet endroit là, et donc je ne peux pas récupérer ma remarque en entière -> et le problème reste le même.

Après, faire l'équivalent de cette chose dans ACCESS même, je ne sais justement pas comment faire, et j'aimerai éviter les 100e de lignes de code en VB, car d'autres fichiers ACCESS contenant des tables de ce genre seront plus tard utilisés dans l'appli PHP par des non-informaticiens...
Je voudrai éviter de mettre le bazard ^^
0
mouf13 Messages postés 142 Date d'inscription mardi 20 juin 2006 Statut Membre Dernière intervention 22 février 2011 17
12 sept. 2008 à 15:01
est ce que tu peux faire un export en csv ? t'es champs seront alors séparés par des virgules et tu pourrai identifier les retours chariot de $remarque.
Esperant avoir compris ta demande.
0
mimihiwatari
12 sept. 2008 à 15:20
Oui, j'exporte justement cette table sous un fichier CSV, (extension .txt) dont les champs sont séparés par un caractère que j'ai moi même choisi pour éviter les confusions, qui est le caractère µ.
Prenons un exemple.
Dans ma table, j'ai les champs
Nom Prénom Adresse Remarque

Dupond Pierre 2 rue biscotte "Habite encore chez
ses parents"
Jean Lily 3 avenue C. "Enfin une remarque normale !"

Quand j'exporte en CSV, j'ai donc un fichier texte de la forme :
"Dupond"µ"Pierre"µ"2 rue biscotte"µ"Habite encore chez
ses parents"
"Jean"µ"Lily"µ"3 avenue C."µ"Enfin une remarque normale !"

Voilà, le problème se situe au niveau de la première remarque. Comme il y avait un retour à la ligne à cet endroit, ma ligne a été coupée. J'essaye de bidouiller sous PHP pour la faire revenir à la ligne principale, mais ça ne fonctionne pas comme je voudrai...
0
divland Messages postés 194 Date d'inscription dimanche 22 juin 2008 Statut Membre Dernière intervention 4 septembre 2009 13
13 sept. 2008 à 17:28
bonjour,
j'ai utilisé les lignes suivantes, dans un script que j'avais créé et ou je voulais enlever tout ce qui était caractères de formatage :

$rempl = array('\r\n','\n','\r','\t','\x0B','\v','\0','\\')
$texte = htmlspecialchars(stripslashes(str_replace($rempl, "",$texte)));

ça peut peut-être vous aider ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mouf13 Messages postés 142 Date d'inscription mardi 20 juin 2006 Statut Membre Dernière intervention 22 février 2011 17
12 sept. 2008 à 16:50
ok j'ai fini par comprendre.
A part te dire d'essayer plusieurs forme d'exports différents et de voir si il n'y a pas possibilité d'avoir une fin de ligne réelle et non marquée par un \n, je ne pense pas pouvoir t'aider.
pas de possibilité d'export xml j'imagine ...?
0
Mimi_Hiwatari Messages postés 2 Date d'inscription vendredi 25 avril 2008 Statut Membre Dernière intervention 27 septembre 2008
12 sept. 2008 à 18:47
Je ne peux pas changer le format d'export, car en fait une partie de l'appli existait avant que j'arrive, et le système d'import était déjà par txt et il est conseillé de faire la même chose...
J'ai regardé sur cette partie de l'appli, mais la personne qui a créé le code avant moi n'a pas traité le problème car ses tables ne présentaient pas ce problème là.
Je vais me débrouiller, et reposter si je trouve la réponse !
Merci
0