(PHP 4, PHP 5, PHP 7, PHP 8)
substr_replace — Ersetzt Text innerhalb einer Zeichenkette
$string
,$replace
,$offset
,$length
= null
substr_replace() ersetzt in einer Kopie von string
alle Zeichen, die sich innerhalb der durch die Parameter offset
und (optional) length
festgelegten Grenze befinden, mit der in replace
angegebenen Zeichenkette.
string
Die Eingabezeichenkette.
Ein array von strings kann übergeben werden; die Ersetzungen erfolgen dann bei jeder Zeichenkette der Reihe nach. In diesem Fall können die Parameter replace
, offset
und length
entweder als Skalar übergeben werden, die auf jede Eingabezeichenkette der Reihe nach angewandt werden, oder als arrays; in diesem Fall wird das entsprechende Array-Element für jede Eingabezeichenkette genutzt.
replace
Die Ersetzungszeichenkette
offset
Ist offset
nicht negativ, beginnt die Ersetzung ab der im Parameter offset
definierten Stelle innerhalb von string
.
Ist offset
negativ, wird vom Ende der Zeichenkette string
bis zum Wert von offset
rückwärts gezählt und dort mit dem Austausch begonnen.
length
Ist der Parameter angegeben und positiv, stellt dieser Parameter die Länge des auszuwechselnden Teils von string
dar. Ist der Wert negativ, gibt er die Zeichenzahl an, um die ab Ende von string
rückwärts gezählt wird. Bis zu dieser Stelle erfolgt dann der Austausch. Ist der Parameter nicht angegeben, wird standardmäßig eine Ersetzung bis zum Ende des Strings (strlen(string
)) durchgeführt, das heißt, die Ersetzung endet mit dem Ende von string
. Sollte length
den Wert Null (0
) haben, wird die Funktion die Zeichenkette replace
in string
an der durch offset
bezeichneten Stelle einfügen.
Der entstehende String wird zurückgegeben. Ist string
ein Array, wird auch ein Array zurückgegeben.
Version | Beschreibung |
---|---|
8.0.0 | length ist jetzt ein Nullable-Typ. |
Beispiel #1 Einfache substr_replace()-Beispiele
<?php
$var = 'ABCDEFGH:/MNRPQR/';
echo "Original: $var<hr />\n";
echo substr_replace($var, 'bob', 0) . "<br />\n";
echo substr_replace($var, 'bob', 0, strlen($var)) . "<br />\n";
echo substr_replace($var, 'bob', 0, 0) . "<br />\n";
echo substr_replace($var, 'bob', 10, -1) . "<br />\n";
echo substr_replace($var, 'bob', -7, -1) . "<br />\n";
echo substr_replace($var, '', 10, -1) . "<br />\n";
?>
Beispiel #2 Nutzung von substr_replace() um mehrere Zeichenketten auf einmal zu ersetzen.
<?php
$input = array('A: XXX', 'B: XXX', 'C: XXX');
// Ein einfacher Fall: ersetze XXX in jeder Zeichenkette mit YYY.
echo implode('; ', substr_replace($input, 'YYY', 3, 3))."\n";
// Ein komplizierterer Fall bei dem jede Ersetzung unterschiedlich ist.
$replace = array('AAA', 'BBB', 'CCC');
echo implode('; ', substr_replace($input, $replace, 3, 3))."\n";
// Ersetze eine jedesmal unterschiedliche Anzahl von Zeichen
$length = array(1, 2, 3);
echo implode('; ', substr_replace($input, $replace, 3, $length))."\n";
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
A: YYY; B: YYY; C: YYY A: AAA; B: BBB; C: CCC A: AAAXX; B: BBBX; C: CCC
Hinweis: Diese Funktion ist binärsicher.