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

Messages postés
76
Date d'inscription
samedi 8 décembre 2007
Statut
Membre
Dernière intervention
27 juin 2008
- - Dernière réponse : macgawel
Messages postés
671
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
- 11 juin 2008 à 13:49
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()...)
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
671
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
85
4
Merci
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)

Dire « Merci » 4

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

CCM 62807 internautes nous ont dit merci ce mois-ci

redlifebig
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)
macgawel
Messages postés
671
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
85 > redlifebig
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
-1
Merci
up