Problème de retour chariot Access => PHP
mimihiwatari
-
divland Messages postés 194 Date d'inscription Statut Membre Dernière intervention -
divland Messages postés 194 Date d'inscription Statut Membre Dernière intervention -
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 !
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:
- Php retour chariot
- Easy php - Télécharger - Divers Web & Internet
- Retour à la ligne excel formule - Guide
- Retour a la ligne php ✓ - Forum PHP
- Retour à la ligne google sheet ✓ - Forum Bureautique
- Google Sheet : Retour à la ligne à l'intérieur d'une formule - Forum Excel
6 réponses
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.
au moins tu n'est plus embeté avec ce retour charriot et tu sais que signequelconque signifie retour à la ligne dans ton ancienne base.
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 ^^
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 ^^
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.
Esperant avoir compris ta demande.
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...
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...
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 ...
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 ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 ...?
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 ...?
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
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