Remplacer occurence une seule fois

Petit nouveau ! | 7 Messages

25 avr. 2006, 15:07

Bonjour :)
Je souhaite remplacer le caractère ] par le caractère > dans ma chaine mais juste une seule fois, la première (en gros remplacer simplement le premier ] de la chaine, les suivants devant rester comme par défaut).
Voilà mon code:
$echochat = str_replace("]",">",$echochat);
J'ai pris quelques renseignement sur la fonction eregi() mais je n'ai pas réussis à l'utiliser comme je voulais et comme je ne suis sûr de rien alors je me permets de vous demander :P

Eléphant du PHP | 254 Messages

25 avr. 2006, 15:21

dans ce cas la, un strpos() et un substr() et zouuuuu :!:

Petit nouveau ! | 7 Messages

25 avr. 2006, 15:27

Mici, mais un substr() n'est pas possible, mon ] ne se trouve jamais à la même position et pour strpos() je ne vois pas comment l'utiliser dans mon cas :?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

25 avr. 2006, 15:33

Mici, mais un substr() n'est pas possible, mon ] ne se trouve jamais à la même position et pour strpos() je ne vois pas comment l'utiliser dans mon cas :?
Et si tu utilisais le strpos() pour déterminer la position de ton caractère avant de faire le substr() ? mmhh ? ;)

Petit nouveau ! | 7 Messages

25 avr. 2006, 17:30

Je n'y arrive pas :roll:
$pos = strpos($echochat, ']', 1);
$echochat = substr('$echocha', $pos);
Tu pourrais me donner un exemple avec les infos que j'ai donné dans mon premier message ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

25 avr. 2006, 18:05

P'tit exemple :
$chaine = 'abcde';
$pos = strpos($chaine, 'c'); // cherche la position de c dans la chaine
echo substr($chaine, 0, $pos) // affiche le début de la chaine jusque à $pos : "ab"
echo substr($chaine, $pos+1) // affiche la fin de la chaine après $pos : "de" 
Te reste plus qu'à adapter et compléter en fonction de ton besoin :)

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

26 avr. 2006, 02:45

À noter que si tu ne souhaites remplacer qu'un seul caractère alors tu peux modifier la chaîne en y accédant par les crochets (le manuel recommande les accolades {} mais il aurait probablement besoin d'être mis à jour, utilise les crochets)
$pos = strpos($echochat, ']');
if ($pos !== FALSE)
{
   $echochat[$pos] = '>';
}