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
,offset
undlength
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 Parameteroffset
definierten Stelle innerhalb vonstring
.Ist
offset
negativ, wird vom Ende der Zeichenkettestring
bis zum Wert vonoffset
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 vonstring
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 vonstring
. Solltelength
den Wert Null (0
) haben, wird die Funktion die Zeichenkettereplace
instring
an der durchoffset
bezeichneten 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