Sed dans un script php
Bonjour,
J'ai un problème :) avec une commende Shell dans un fichier php
J'ai Une des ligne d'un fichier CSV :
"110224";"ASG42W";"100038234";"ALESSI";"100000837";"ACCESSOIRE CUISINE";" "BUNNY & CARROT" PORTE ROULEAU";"";"";"0";"0";"0";"5";"accessoir CUISINE";"";"";"36.00";"0";"";"";"";"0";"0"
Et je veux sa:
"110224";"ASG42W";"100038234";"ALESSI";"100000837";"ACCESSOIRE CUISINE";" 'BUNNY & CARROT' PORTE ROULEAU";"";"";"0";"0";"0";"5";"accessoir CUISINE";"";"";"36.00";"0";"";"";"";"0";"0"
c'est a dire je veux des ' ' au lieu des " " à ""BUNNY & CARROT" PORTE ROULEAU"
J'ai donc utilisé expression régulière:
shell_exec("sed -r 's/(;\"[^;]*)\"([^;]*)\"([^;]*\";)/\1\2\3/g' monfichier");
La commende me sélectionne bien se que je veux mais:
- au lieu de "'BUNNY & CARROT' PORTE ROULEAU" --> sa m'affiche 3 petits carrés avec 4 chiffres dedans (sur une page web qui pour moi représente \1\2\3)
- au lieu de "'BUNNY & CARROT' PORTE ROULEAU" --> sa m'affiche sho stx etx (avec notpad idem)
donc quelqu'un sait pourquoi ?
bien sur si vous avez une meilleur expression régulière que la mienne ne vous gênez surtout pas !!!
Merci d'avance d'une réponse rapide svp svp svp:D
ps: si je fait sa shell_exec("sed -r 's/(;\"[^;]*)\"([^;]*)\"([^;]*\";)/\1\'\2\'\3/g' monfichier"); pour rajouter les ' ' à \2 sa ne marche plus ! Donc une idée pour sa aussi ?
J'ai un problème :) avec une commende Shell dans un fichier php
J'ai Une des ligne d'un fichier CSV :
"110224";"ASG42W";"100038234";"ALESSI";"100000837";"ACCESSOIRE CUISINE";" "BUNNY & CARROT" PORTE ROULEAU";"";"";"0";"0";"0";"5";"accessoir CUISINE";"";"";"36.00";"0";"";"";"";"0";"0"
Et je veux sa:
"110224";"ASG42W";"100038234";"ALESSI";"100000837";"ACCESSOIRE CUISINE";" 'BUNNY & CARROT' PORTE ROULEAU";"";"";"0";"0";"0";"5";"accessoir CUISINE";"";"";"36.00";"0";"";"";"";"0";"0"
c'est a dire je veux des ' ' au lieu des " " à ""BUNNY & CARROT" PORTE ROULEAU"
J'ai donc utilisé expression régulière:
shell_exec("sed -r 's/(;\"[^;]*)\"([^;]*)\"([^;]*\";)/\1\2\3/g' monfichier");
La commende me sélectionne bien se que je veux mais:
- au lieu de "'BUNNY & CARROT' PORTE ROULEAU" --> sa m'affiche 3 petits carrés avec 4 chiffres dedans (sur une page web qui pour moi représente \1\2\3)
- au lieu de "'BUNNY & CARROT' PORTE ROULEAU" --> sa m'affiche sho stx etx (avec notpad idem)
donc quelqu'un sait pourquoi ?
bien sur si vous avez une meilleur expression régulière que la mienne ne vous gênez surtout pas !!!
Merci d'avance d'une réponse rapide svp svp svp:D
ps: si je fait sa shell_exec("sed -r 's/(;\"[^;]*)\"([^;]*)\"([^;]*\";)/\1\'\2\'\3/g' monfichier"); pour rajouter les ' ' à \2 sa ne marche plus ! Donc une idée pour sa aussi ?
5 réponses
-
c'est possible mais d'habitude il suffi de mettre un \" et sa reviens au même ...
Donc c'est bizarre que sa ne marche pas alors que dans un terminal sa marche car sa reste du Shell dans les 2 cas ...
encore merci de ton aide ^^ <3 si ta encore une idée n'hésite pas :)
PS: Si d'autres ont une idée ne soyez pas timide et lancez vous ;)