substr_replace
(PHP 4, PHP 5, PHP 7, PHP 8)
substr_replace — Ersetzt Text innerhalb einer Zeichenkette
Beschreibung
array|string
$string,array|string
$replace,array|int
$offset,array|int|null
$length = null): string|array
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.
Parameter-Liste
-
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,offsetundlengthentweder 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
offsetnicht negativ, beginnt die Ersetzung ab der im Parameteroffsetdefinierten Stelle innerhalb vonstring.Ist
offsetnegativ, wird vom Ende der Zeichenkettestringbis zum Wert vonoffsetrü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
stringdar. Ist der Wert negativ, gibt er die Zeichenzahl an, um die ab Ende vonstringrü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 vonstring. Solltelengthden Wert Null (0) haben, wird die Funktion die Zeichenkettereplaceinstringan der durchoffsetbezeichneten Stelle einfügen.
Rückgabewerte
Der entstehende String wird zurückgegeben. Ist string
ein Array, wird auch ein Array zurückgegeben.
Changelog
| Version | Beschreibung |
|---|---|
| 8.0.0 |
length ist jetzt ein Nullable-Typ.
|
Beispiele
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
Anmerkungen
Hinweis: Diese Funktion ist binärsicher.
Siehe auch
- str_replace() - Ersetzt alle Vorkommen des Suchstrings durch einen anderen String
- substr() - Liefert einen Teil eines Strings
- Zeichenketten-Zugriff und -Veränderung je Zeichen

