(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.
stringDie 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.
replacementDie 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.