(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";
/* Die beiden Beispiele ersetzen alle Vorkommen von
$var durch 'bob'. */
echo substr_replace($var, 'bob', 0) . "<br />\n";
echo substr_replace($var, 'bob', 0, strlen($var)) . "<br />\n";
/* Einfügen von 'bob' direkt am Anfang von $var. */
echo substr_replace($var, 'bob', 0, 0) . "<br />\n";
/* Die nächsten beiden Beispiele ersetzen 'MNRPQR' in $var
durch 'bob'. */
echo substr_replace($var, 'bob', 10, -1) . "<br />\n";
echo substr_replace($var, 'bob', -7, -1) . "<br />\n";
/* Entfernen von 'MNRPQR' aus $var. */
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.