(PHP 4, PHP 5, PHP 7, PHP 8)
substr_replace — Remplace un segment dans une chaîne
$string
,$replace
,$offset
,$length
= null
substr_replace() remplace un segment de la chaîne
string
par la chaîne replace
.
Le segment est délimité par offset
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 replace
, offset
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.
replace
La chaîne de remplacement.
offset
Si offset
n'est pas négatif, le remplacement
se fera à partir du caractère numéro offset
dans string
.
Si offset
est négatif, le remplacement
se fera à partir du offset
-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 replace
dans
string
à la position
offset
donnée.
La chaîne résultante est retournée. Si le paramètre
string
est un tableau, alors un
tableau sera retourné.
Version | Description |
---|---|
8.0.0 |
length est désormais nullable.
|
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.