Tableau

Signaler
Messages postés
125
Date d'inscription
dimanche 6 avril 2003
Statut
Membre
Dernière intervention
7 octobre 2006
-
Messages postés
125
Date d'inscription
dimanche 6 avril 2003
Statut
Membre
Dernière intervention
7 octobre 2006
-
Bonjour,
je viens de m'interesser aux tableaux mais j'ai quelques problèmes :
$tableau = array (
'[jour]' => 'bonjour.gif',
":?" => 'confus.gif',
'[h]' => 'cool.gif',
'{:' => 'diable.gif',
'[nrv]' => 'diable2.gif',
'8|' => 'eek.gif',
'[dsl]' => 'frown.gif'

);

$test = "[jour]";
foreach ( $tableau as $code => $img ){

$a = str_replace($code,$img,$test);
if (ereg($code,$test)){echo "<script>alert('oui')</script>";}else {echo "<script>alert('non')</script>";}
}

echo $a; // et ici il devrait y avoir juste "bonjour.gif" mais il y a marqué "[jour]"

et pour ce qui est du ereg, il m'affiche 3/7 alert("oui") (la 1ere,2eme et 5eme)

Je vois vraiment pas pourquoi il y a ça, donc si quelqu'un pouvait m'aider .. ? Merci
>:) nashoy 8-)

5 réponses

Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Salut!
J'ai pas torp étudié ton code... mais il y a plus simple:

Si tu veux remplacer des chaînes par d'autres, tu peux créer deux tableaux et les passer à str_replace qui fera tout en une fois:

$search = array('[jour]', ':?', '[h]');
$replace = array('bonjour.gif', 'confus.gif', 'cool.gif');

$texte = str_replace($search, $replace, $texte);


@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
125
Date d'inscription
dimanche 6 avril 2003
Statut
Membre
Dernière intervention
7 octobre 2006

oui c'est vrai, mais je trouve que ma manière était plus propre et plus simple pour d'éventuels ajouts.
Mais c'est pas grave, je vais comme tu a dis de faire. merci :)

>:) nashoy 8-)
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Salut!
Ca évite une boucle et les regexp sont assez lentes...

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
435
Date d'inscription
vendredi 20 septembre 2002
Statut
Membre
Dernière intervention
20 novembre 2004

je crois que tu as confondu à linterieur de ton tableau regarde

$nombre = array("un"=>"1", "2", "3", "4");
$a=array_search("1",$nombre);
echo $a."
";


donc pour toi
$tableau = array (
'bonjour.gif'=> '[jour]',
'confus.gif' => ':?' 
);

$test = "[jour]";
$a=array_search($test,$tableau);
echo $a."
";


de plus reessai ton script en mettant
':?' => 'confus.gif',

à la place de
":?" => 'confus.gif',


\-> Defkrie !?!
\->http://ndwc.fwhost.net/
Messages postés
125
Date d'inscription
dimanche 6 avril 2003
Statut
Membre
Dernière intervention
7 octobre 2006

Ah oui effectivement ça fonctionne comme ça :)
Mais pourtant la synthaxe de str_replace est la suivante :
str_replace ( mixed search , mixed replace , mixed subject , int &count ).
enfin bon, tant que ça marche.

Je voulais savoir si on pouvais aussi faire "a l'envers" ;
pouvoir changer "confus.gif" par ":?" par exemple ?
>:) nashoy 8-)