Bonjour
Je génère un fichier texte avec des séparations par ; et des "" entre les champs textes que je veux importer dans une base MySQL par un LOAD DATA INFILE. Cela fonctionne correctement lorsque je mets des \N à la place des valeurs nulles mais je voudrai faire cela en php une fois le fichier texte envoyé vers le serveur.
j'arrive presque à mon résultat avec une "bête" méthode du style :
cela me remplace bien toutes les occurrences de ;; par ;\N; mais le souci se présente lorsque j'ai un champs nul en fin de ligne puisque le
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $texte = file_get_contents($file); $texte = str_replace(";;;;;;;;;;;",";\N;\N;\N;\N;\N;\N;\N;\N;\N;\N;",$texte); .... $texte = str_replace(";;",";\N;",$texte); file_put_contents($file , $texte);
ligne1 "valeur a";;;
devient
ligne2 "valeur b";\N;\N;
il manque donc un ;\N à la fin de la ligne...
du coup, j'essaye de le faire avec une expression régulière et preg_replace. j'ai réussi sous Notepad++ avec le pattern ;$ et le remplacement ;\N mais ça ne marche pas en php si je fais à la fin de mon script précédent :
avez-vous une idée pour faire cela proprement ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part $texte = preg_replace('%;$%',';\N',$texte);
Merci par avance
Guen
Partager