(PHP 4, PHP 5, PHP 7)
substr_replace — Ersetzt Text innerhalb einer Zeichenkette
substr_replace() ersetzt in einer Kopie von
string
alle Zeichen, die sich innerhalb der
durch die Parameter start
und (optional)
length
festgelegten Grenze befinden, mit der in
replacement
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 replacement
, start
und length
Parameter 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 Eingabe Zeichenkette genutzt.
replacement
Die Ersetzungszeichenkette
start
Ist start
nicht negativ, beginnt die Ersetzung ab der
im Offset-Parameter start
definierten Stelle
innerhalb von string
.
Ist start
negativ, wird vom Ende der
Zeichenkette string
bis zum Wert von
start
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 replacement
in
string
an der durch start
bezeichneten Stelle einfügen.
Der entstehende String wird zurückgegeben. Ist string
ein Array, wird auch ein Array zurückgegeben.
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 binary safe.