Remplacer des variables définies par des valeurs

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Remplacer des variables définies par des valeurs

Re: Remplacer des variables définies par des valeurs

par celionor » 09 févr. 2011, 20:33

A mon avis le % n'est pas autorisé dans le nom des constantes.
Edit pas sur pour le - non plus
Bon à savoir ;)
Merci

Re: Remplacer des variables définies par des valeurs

par Mazarini » 09 févr. 2011, 15:00

Bonjour,
define("%mon-prenom", $data_client['prenom']);
A mon avis le % n'est pas autorisé dans le nom des constantes.
Edit pas sur pour le - non plus

Re: Remplacer des variables définies par des valeurs

par stealth35 » 09 févr. 2011, 14:21

je te déconseille de mettre les guillemet oblique pour les regexp
http://php.net/manual/fr/language.opera ... cution.php

Re: Remplacer des variables définies par des valeurs

par celionor » 09 févr. 2011, 13:48

Salut et merci de la réponse rapide,

Alors on va compliquer un peu la chose, car dans mon premier message, j'ai simplifier pour me faire comprendre.
J'ai testé ton code, il m'a l'air en effet de fonctionner, sauf que j'ai des valeurs qui ne correspondent pas aux variables, ce qui pose problème dans ton code.
Ex :
Votre prénom : %mon-prenom
avec %mon-prenom = $data['prenom']

J'avais essayé la chose suivante :

Code : Tout sélectionner

<?php // Valeur à définir define("%mon-prenom", $data_client['prenom']); // Texte du message avec les valeurs % à remplacer echo $data_mail['texte']; ?>
Mais la fonction define(); n'a pas l'air de fonctionner sur une variable. Faut-il que je le définisse autrement où faut-il que j'utilise des preg_replace(); ?

Comme ça, ça fonctionne :

Code : Tout sélectionner

<?php // Texte du message avec les valeurs % à remplace $text = $data_mail['texte']; // Valeur à définir $text = preg_replace('`(%mon-prenom)`', $data['prenom'], $text); $text = preg_replace('`(%mon-nom)`', $data['nom'], $text); // Texte formaté echo $text; ?>

Re: Remplacer des variables définies par des valeurs

par stealth35 » 09 févr. 2011, 12:38

hello, tu peux faire ca avec preg_replace et l'option e ou mieux avec preg_replace_callback
$data['prenom'] = 'truc';
$data['nom']	= 'machin';

$text = <<<HEREDOC
Votre prénom : %prenom
Votre nom : %nom
HEREDOC;

echo preg_replace('/%(\w+)/e', '$data[\'$1\']', $text);

Remplacer des variables définies par des valeurs

par celionor » 09 févr. 2011, 12:34

Bonjour,

J'ai une liste de messages pré-définis dans une table MySQL, avec, dans le corps de chaque message, des variables (définies par un %) à remplacer par des valeurs à définir.

Ex:
Votre prénom : %prenom
Votre nom : %nom

avec %prenom = $data['prenom'];

J'aimerai remplacer les variables commençant par % par des valeurs. Comment dois-je procéder ?

Merci,
Florent