fonction str_replace pas selective

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 : fonction str_replace pas selective

Re: fonction str_replace pas selective

par sirakawa » 11 avr. 2012, 13:19

Bonsoir. Finalement j'ai trouvé la solution :
<td width ="36"><?php $liste['paye']=str_replace('oui','yes',$liste['paye']);echo $liste['paye'];?></td>

Bon ben voila il suffisait de reflechir un peu : :^o :^o
par contre je voudrais que le ' yes ' sorte en couleur verte et la je ne trouve pas .Avez vous une piste ou pouvez vous me mettre sur une piste svp ? merci .
Code à mettre chez le teinturier en urgence.... mais passons.
partie HTML
<style>
*.vert
{
    color:green;
}

</style>

<td class ='vert'>...</td>

Re: fonction str_replace pas selective

par ifate » 10 avr. 2012, 22:17

Bonsoir. Finalement j'ai trouvé la solution :
<td width ="36"><?php $liste['paye']=str_replace('oui','yes',$liste['paye']);echo $liste['paye'];?></td>

Bon ben voila il suffisait de reflechir un peu : :^o :^o
par contre je voudrais que le ' yes ' sorte en couleur verte et la je ne trouve pas .Avez vous une piste ou pouvez vous me mettre sur une piste svp ? merci .

Re: fonction str_replace pas selective

par ifate » 09 avr. 2012, 10:45

Bonjour ; Finalement en me creusant un peu les méninges #-o j'ai trouvé une formule pas mal que voici :

<td width ="36"><?php $liste=$liste['paye'];$liste=str_replace('oui','yes',$liste);echo $liste['paye'];?></td>

Mais bon petit souci le ' oui ' n'est remplacé que par une seule lettre qui est le ' y ' :?: . Comment cela se fait il ? avez vous une suggestion ? merci et joyeuses Pâques :lol: :lol: :lol:

Re: fonction str_replace pas selective

par ifate » 31 mars 2012, 22:31

En fait j'ai supprimé la ligne qui posait problème ( $liste['cm']= 'oui'; ) et je n'ai rien mis a la place , donc cela ne peut marcher . De plus echo $liste['cm']; m'affiche la liste sous ma liste de nom mais ça ce n'est pas important pour le moment , le plus important est la fonction str_replace . mais la je cale j'ai pourtant essayé plusieurs possibilités , je ne suis pas encore assez bon cela ne fait aucun doute. :( :( :( :( j’arrête pour ce soir je m'y remettrais demain . bonne soirée et merci encore.

Re: fonction str_replace pas selective

par xTG » 31 mars 2012, 21:53

Quel est le code modifié ?
Et quel est le code généré par le navigateur ?

Re: fonction str_replace pas selective

par ifate » 31 mars 2012, 21:12

Bonsoir , ben non cela ne marche toujours pas . :( :( :(

Re: fonction str_replace pas selective

par sirakawa » 30 mars 2012, 08:19

//$liste['cm']= 'oui'; BOUUUUUUUUUH ! ça remplace tout ce qui était dans le champ 'cm' du tableau liste par le mot "oui"
$liste['cm']= str_replace('oui' ,'yes ',$liste['cm']);
echo $liste['cm'];

Re: fonction str_replace pas selective

par xTG » 30 mars 2012, 07:02

Bah si le champ cm provient bien de la BDD dans ce cas il faut supprimer cette ligne...
A moins que tu lui trouves un intérêt ? :roll:

Re: fonction str_replace pas selective

par ifate » 29 mars 2012, 21:28

Oui c'est vrai tu as raison j'y avais pensé par la suite , j'ai donc fait quelques modifications mais je ne trouve toujours pas , je ne dois pas être assez futé , t'aurais pas une idée ? :wink: :wink:

Re: fonction str_replace pas selective

par xTG » 29 mars 2012, 20:59

Si c'est le code fourni plus haut (ou voir plus bas) c'est normal vu que comme je te l'ai expliqué tu écrases la valeur de la variable...
Donc il y a toujours la même valeur dedans ! La valeur "oui".
<?php
while($liste = mysql_fetch_array($requete))

{ ?>
<table width="895">
<tr>
<td width="171"><?php echo $liste['nom'];?></td>
<td width="116"><?php echo $liste['prenom'];?></td>
<td width="44"><?php echo $liste['ne'];?></td>
<td width="30"><?php echo $liste['sexe'];?></td>
<td width="47"><?php echo $liste['pays'];?></td>
<td width= "58"><?php echo $liste['dept'];?></td>
<td width="291"><?php echo $liste['club'];?></td>
<td width="48"><?php echo $liste['paye'];?></td>
<td width="50"><?php
$liste['cm']= 'oui'; // BOUUUUUUUUUH !
$liste['cm']= str_replace('oui' ,'yes ',$liste['cm']);
echo $liste['cm'];
?>
</td>
</tr>
</table>
<?php } ?>

Re: fonction str_replace pas selective

par ifate » 29 mars 2012, 20:57

Bonsoir . J'ai essayé pas mal de solutions mais tout ce qui sort de la table " $liste['cm'] " est transformé en " yes " , les " oui " comme les " non ". Je continu a chercher . Merci tout de même . :? :? :?

fonction str_replace fonctionne à merveille

par sirakawa » 29 mars 2012, 10:09

Halluciné-je?
Non seulement, comme le notent Calimero et xTg, les exemples fournis ne correspondent pas à la question, mais la fonction fonctionne parfaitement et le bout d'exemple produit donne aussi le résultat attendu.
Elle est tellement sélective que
<?PHP
   $origine = "Oui, je l'aime, Seigneur. Non, je ne vous dirai pas 'oui' lorsque je pense 'non'";
   $cible = str_replace ("oui", "yes", $origine);
   print "$origine <br />devient <br />$cible";
?>
sort, à juste titre, ceci:
Oui, je l'aime, Seigneur. Non, je ne vous dirai pas 'oui' lorsque je pense 'non'
devient
Oui, je l'aime, Seigneur. Non, je ne vous dirai pas 'yes' lorsque je pense 'non'

et qu'il faut passer par ceci:
<?PHP
$origine = "Oui, je l'aime, Seigneur. Non, je ne vous dirai pas 'oui' lorsque je pense 'non'";
$a_remplacer = array("oui", "Oui");
$remplacants = array("yes", "Yes");
$cible = str_replace ($a_remplacer, $remplacants, $origine);
print "$origine <br />devient <br />$cible";
?>
pour qu'elle remplace les deux Oui et oui, ou utiliser str_ireplace...

Re: fonction str_replace pas selective

par xTG » 29 mars 2012, 09:41

Pas non plus de non dans ce code et aucune donnée en provenance de la bdd qui est modifiée hormi $liste['cm'] dont la valeur est écrasée si elle existait.

Re: fonction str_replace pas selective

par ifate » 29 mars 2012, 07:22

Bonjour . La liste de " oui " et de " non " sort d'une base de donnée ( array ) et str_replace me remplace tout , " oui " et " non " sans discernement . A moins qu'il ne faille mettre un code pour qu'il ignore les " non " mais la je ne vois pas .
Voici le code complet peut etre comprendra tu mieux :

<?php
while($liste = mysql_fetch_array($requete))

{ ?>
<table width="895">
<tr>
<td width="171"><?php echo $liste['nom'];?></td>
<td width="116"><?php echo $liste['prenom'];?></td>
<td width="44"><?php echo $liste['ne'];?></td>
<td width="30"><?php echo $liste['sexe'];?></td>
<td width="47"><?php echo $liste['pays'];?></td>
<td width= "58"><?php echo $liste['dept'];?></td>
<td width="291"><?php echo $liste['club'];?></td>
<td width="48"><?php echo $liste['paye'];?></td>
<td width="50"><?php
$liste['cm']= 'oui';
$liste['cm']= str_replace('oui' ,'yes ',$liste['cm']);
echo $liste['cm'];
?>
</td>
</tr>
</table>
<?php } ?>

Re: fonction str_replace pas selective

par Calimero » 29 mars 2012, 00:22

Bonjour,

Ton problème n'a rien à voir avec le code que tu nous présentes, qui ne contient aucun "non" :)

Mais en tout cas, str_replace ne fait que ce qu'on lui dit de faire : si tu lui dis de remplacer "oui", il n'y a aucune chance qu'il aille s'occuper d'un "non". Peut-être que ton problème se trouve ailleurs...