(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.
stringLa 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.
replacementLa chaîne de remplacement.
start
Si start n'est pas négatif, 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.