PHP - insérer un caractère dans une chaine [Résolu/Fermé]

Signaler
Messages postés
76
Date d'inscription
samedi 8 décembre 2007
Statut
Membre
Dernière intervention
27 juin 2008
-
Messages postés
664
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
-
Bonjour,

Je souhaiterais savoir si il existe une fonction pour insérer un caractère dans une chaine...


Ex: j'ai le mot "rue" et je veux insérer le caractère "o" en 2ème position par exemple et en résultat, mon mot départ deviens "roue"...

Donc, je voulais savoir si une fonction pouvais faire cela ?

(Autre que la concaténation + la fonction substr()...)

2 réponses

Messages postés
664
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
90
Bonjour.

Il n'y a pas à ma connaissance de fonction php prédéfinie pour insérerer le caractère carac en n-ième position .
Mais il "suffit" de la coder et d'appeler ensuite ta fonction, donc ce n'est pas trop gênant...

Sinon, tu peux étudier la fonction ereg_replace, mais utiliser des expressions régulières pour faire ça, c'est plus compliqué (et je ne suis pas sûr que ça représente un réél gain au niveau consommation des ressources)
4
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
59
Date d'inscription
jeudi 5 juin 2008
Statut
Membre
Dernière intervention
17 mars 2010
23
La fonction existe

substr_replace("rue","o",1,0)
Messages postés
664
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
90 >
Messages postés
59
Date d'inscription
jeudi 5 juin 2008
Statut
Membre
Dernière intervention
17 mars 2010

Au temps pour moi :-O

Pour la peine, la doc sur substr_replace :

Description

string substr_replace(string string ,string replacement ,int start ,[int length ])

substr_replace effectue un remplacement dans la portion de string délimitée par le caractère start et de longueur optionnelle length. Le remplacement est fait avec la chaîne replacement. Le résultat est retourné.

Si start est positif, le remplacement commencera au caractère start, dans la chaîne string.

Si start est négative, le remplacement commencera au caractère start en partant de la fin de la chaîne string.

Si length est donné et positif, la chaîne retournée aura la longueur length. Si length est donné et négatif, la chaîne retournée aura la longueur length, en partant de la fin. Par défaut, il prendra la valeur de strlen(string ); c'est-à-dire qu'il remplacera jusqu'à la fin de la chaîne string.

Exemple avec substr_replace

<?php
$var = 'ABCDEFGH:/MNRPQR/';
echo "Original: $var<hr>\n";
/* Ces deux exemples remplacent tout $var avec 'bob'. */
echo substr_replace($var, 'bob', 0)."<br>\n";
echo substr_replace($var, 'bob', 0, strlen($var))."<br>\n";
/* Insère 'bob' à gauche, du début de $var. */
echo substr_replace($var, 'bob', 0, 0)."<br>\n";
/* Ces deux exemples remplacent 'MNRPQR' dans $var avec 'bob'. */
echo substr_replace($var, 'bob', 10, -1)."<br>\n";
echo substr_replace($var, 'bob', -7, -1)."<br>\n";
/* Efface 'MNRPQR' dans $var. */
echo substr_replace($var, '', 10, -1)."<br>\n";
?>

Voir aussi str_replace et substr. 
Messages postés
76
Date d'inscription
samedi 8 décembre 2007
Statut
Membre
Dernière intervention
27 juin 2008

up