(PHP 4, PHP 5, PHP 7)
substr_replace — Remplace un segment dans une chaîne
substr_replace() remplace un segment de la
chaîne string
par la chaîne
replacement
. Le segment est délimité
par start
et éventuellement par
length
.
string
La chaîne d'entrée.
Un tableau de chaînes de caractères peut être fourni, et dans ce cas,
les remplacements surviendront sur chacune des chaînes. Dans cette situation,
les paramètres replacement
, start
length
doivent être fournis soit comme valeurs scalaires
à appliquer sur chaque chaîne, ou comme tableaux où l'élément
du tableau correspondant sera utilisé pour chaque chaîne d'entrée.
replacement
La chaîne de remplacement.
start
Si start
est positif, le remplacement
se fera à partir du caractère numéro start
dans string
.
Si start
est négatif, le remplacement
se fera à partir du start
-ième caractère
en partant de la fin de la chaîne string
.
length
Si length
est fourni et positif, il
représentera la longueur du segment de code remplacé dans la
chaîne string
. S'il est négatif, il représentera
le nombre de caractères à partir de la fin de la chaîne
string
où arrêter le remplacement. S'il est omis,
il prendra la valeur par défaut de la taille
de la chaîne, et remplacera tout jusqu'à la fin de la chaîne
string
. Bien sûr, si
length
vaut 0, alors, cette fonction
aura comme effet d'insérer replacement
dans
string
à la position
start
donnée.
La chaîne résultante est retournée. Si le paramètre
string
est un tableau, alors un
tableau sera retourné.
Exemple #1 Exemple avec substr_replace()
<?php
$var = 'ABCDEFGH:/MNRPQR/';
echo "Original : $var<hr />\n";
// Remplace toute la chaîne $var par 'bob'.
echo substr_replace($var, 'bob', 0) . "<br />\n";
echo substr_replace($var, 'bob', 0, strlen($var)) . "<br />\n";
// Insert 'bob' au début de la chaîne
echo substr_replace($var, 'bob', 0, 0) . "<br />\n";
// Remplace la séquence 'MNRPQR' par 'bob'.
echo substr_replace($var, 'bob', 10, -1) . "<br />\n";
echo substr_replace($var, 'bob', -7, -1) . "<br />\n";
// Efface la séquence 'MNRPQR' de $var.
echo substr_replace($var, '', 10, -1) . "<br />\n";
?>
Exemple #2 Utilisation de substr_replace() pour remplacer plusieurs chaînes en une seule fois
<?php
$input = array('A: XXX', 'B: XXX', 'C: XXX');
// Un cas simple : remplacer XXX dans chaque chaîne par YYY.
echo implode('; ', substr_replace($input, 'YYY', 3, 3))."\n";
// Un cas plus complexe où chaque remplacement est différent.
$replace = array('AAA', 'BBB', 'CCC');
echo implode('; ', substr_replace($input, $replace, 3, 3))."\n";
// Remplace un nombre différent de caractères à chaque fois.
$length = array(1, 2, 3);
echo implode('; ', substr_replace($input, $replace, 3, $length))."\n";
?>
L'exemple ci-dessus va afficher :
A: YYY; B: YYY; C: YYY A: AAA; B: BBB; C: CCC A: AAAXX; B: BBBX; C: CCC
Note: Cette fonction gère les chaînes binaires.