PHP : str_replace ne fonctionne pas

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


dadovb
WRInaute accro
WRInaute accro
 
Messages: 2038
Inscription: Mar Nov 22, 2005 9:50

PHP : str_replace ne fonctionne pas

Message le Jeu Jan 12, 2006 17:04

Bonjour à tous,


Voici un petit bout de code, sur lequel je me casse les dents depuis un bon moment, vous aurez sans doute un oeil plus avisé que moi pour trouver le problème :

Code: Tout sélectionner
                        $string = traduc_msg(29);
         $original = array("[SERVER]","[EMAIL]","[NUMAUTO]");
         $replace = array($server, $email, $num_auto);
         $txt = str_replace($original, $replace, $string);


traduc_msg est une fonction qui va chercher un message ds un champ de ma base de données.

Le message est de la forme :
Vous êtes inscrit à la newsletter .\n\nVous avez le choix de recevoir votre newsletter au format HTML:\n - http://".[SERVER]."/Newsletter/init.php?format_mail=1&email=[EMAIL]&id=[NUMAUTO] ou au format TEXTE:\n - http://".[SERVER]."/Newsletter/init.php?format_mail=0&email=[EMAIL]&id=[NUMAUTO] \n\nSi vous ne souhaitez plus recevoir notre newsletter LicencePhoto, veuillez cliquez sur le lien suivant : \n\n - http://".[SERVER]."/Newsletter/init.php?inscrire_mail=0&email=[EMAIL]&id=[NUMAUTO]\n\n


après je l'envoie par email :
Code: Tout sélectionner
envoie_mail($email,$title,$txt);



Mais dans le mail que je reçois ca donne ca, ya un petit truc qui doit m'échapper :

Vous êtes inscrit à la newsletter.\n\nVous avez le choix de recevoir votre newsletter au format HTML:\n - http://".[SERVER]."/Newsletter/init.php?format_mail=1&email=[EMAIL]&id=[NUMAUTO] ou au format TEXTE:\n - http://".[SERVER]."/Newsletter/init.php?format_mail=0&email=[EMAIL]&id=[NUMAUTO] \n\nSi vous ne souhaitez plus recevoir notre newsletter LicencePhoto, veuillez cliquez sur le lien suivant : \n\n - http://".[SERVER]."/Newsletter/init.php?inscrire_mail=0&email=[EMAIL]&id=[NUMAUTO]\n\nLicencePhoto© vous remercie.


Merci d'avance à tous


dadovb
WRInaute accro
WRInaute accro
 
Messages: 2038
Inscription: Mar Nov 22, 2005 9:50

Message le Jeu Jan 12, 2006 17:13

lol

J'ai ajouté ca pour tester :

Code: Tout sélectionner
$txt = str_replace("[EMAIL]",$email,$txt);


Et ca marche, docn je suppose qu'il doit y avoir un gros bug que je ne vois pas .

Si vous le voyiez merci d'avance


fabor
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 137
Inscription: Jeu Mar 17, 2005 12:56

Message le Jeu Jan 12, 2006 17:18

ce n'est pas un probleme d'antislashage de characteres delimiteurs. (je ne sais pas si les [ doivent l'etre)
c'est à tout hasard


dadovb
WRInaute accro
WRInaute accro
 
Messages: 2038
Inscription: Mar Nov 22, 2005 9:50

Message le Jeu Jan 12, 2006 17:27

Je pense pas, j'utilise ce système ds de nombreuses parties de mon site et ca marche parfaitement , mais c'est juste quand c'est dans une url que ca bug apparemment...


mr_go
WRInaute accro
WRInaute accro
 
Messages: 1945
Inscription: Mer Sep 21, 2005 16:02

Message le Jeu Jan 12, 2006 17:47

Utilises tu une version PHP antérieure à la version 4.0.5 ?

str_replace prend en compte un tableau en paramêtre 1 uniquement depuis cette version (qui date quand meme donc ca m'étonnerait)


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité