PHP - insérer un caractère dans une chaine

Résolu/Fermé
nino11 Messages postés 76 Date d'inscription samedi 8 décembre 2007 Statut Membre Dernière intervention 27 juin 2008 - 11 juin 2008 à 11:34
macgawel Messages postés 664 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()...)
A voir également:

2 réponses

macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
11 juin 2008 à 12:43
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
redlifebig Messages postés 59 Date d'inscription jeudi 5 juin 2008 Statut Membre Dernière intervention 17 mars 2010 23
11 juin 2008 à 13:45
La fonction existe

substr_replace("rue","o",1,0)
0
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89 > redlifebig Messages postés 59 Date d'inscription jeudi 5 juin 2008 Statut Membre Dernière intervention 17 mars 2010
11 juin 2008 à 13:49
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. 
0
nino11 Messages postés 76 Date d'inscription samedi 8 décembre 2007 Statut Membre Dernière intervention 27 juin 2008
11 juin 2008 à 11:51
up
-3