par
dix2 » 23 déc. 2011, 20:08
salut,
tout d'abord, dans ton str_replace, mets plutôt des simples quotes que des doubles c'est-à-dire :
écris str_replace(' ','\ ',$nom_fichier) au lieu de str_replace(" ","\ ",$nom_fichier)
car les doubles quotes sont utilisées quand il y a des caractères spéciaux échappés par le symbole \
exemple : "\t" est interprété par PHP comme une chaîne d'un seul caractère : le caractère tabulation
alors que '\t' est interprété par PHP comme une chaîne de 2 caractères : \ suivi de la lettre t
ceci dit, dans str_replace(" ","\ ",$nom_fichier), l'espace après le \ n'est pas un caractère spécial donc PHP interprète bien "\ " comme une chaîne de 2 caractères
Ensuite, en ce qui concerne la fonction str_replace($search, $replace, $subject), elle peut parfois avoir un comportement bizarre si $search est une sous-chaîne de $replace, ce qui est le cas ici
Par conséquent, remplace str_replace(" ","\ ",$nom_fichier) par :
implode('\ ', explode(' ', $nom_fichier))
@+
dix2
salut,
tout d'abord, dans ton str_replace, mets plutôt des simples quotes que des doubles c'est-à-dire :
écris str_replace(' ','\ ',$nom_fichier) au lieu de str_replace(" ","\ ",$nom_fichier)
car les doubles quotes sont utilisées quand il y a des caractères spéciaux échappés par le symbole \
exemple : "\t" est interprété par PHP comme une chaîne d'un seul caractère : le caractère tabulation
alors que '\t' est interprété par PHP comme une chaîne de 2 caractères : \ suivi de la lettre t
ceci dit, dans str_replace(" ","\ ",$nom_fichier), l'espace après le \ n'est pas un caractère spécial donc PHP interprète bien "\ " comme une chaîne de 2 caractères
Ensuite, en ce qui concerne la fonction str_replace($search, $replace, $subject), elle peut parfois avoir un comportement bizarre si $search est une sous-chaîne de $replace, ce qui est le cas ici
Par conséquent, remplace str_replace(" ","\ ",$nom_fichier) par :
implode('\ ', explode(' ', $nom_fichier))
@+
dix2