substr_replace

(PHP 4, PHP 5, PHP 7, PHP 8)

substr_replaceErsetzt Text innerhalb einer Zeichenkette

Beschreibung

substr_replace(
    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 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.

Rückgabewerte

Der entstehende String wird zurückgegeben. Ist string ein Array, wird auch ein Array zurückgegeben.

Changelog

VersionBeschreibung
8.0.0length ist jetzt ein Nullable-Typ.

Beispiele

Beispiel #1 Einfache substr_replace()-Beispiele

<?php
$var
= 'ABCDEFGH:/MNRPQR/';
echo
"Original: $var<hr />\n";


echo substr_replace($var, 'bob', 0) . "<br />\n";
echo
substr_replace($var, 'bob', 0, strlen($var)) . "<br />\n";


echo substr_replace($var, 'bob', 0, 0) . "<br />\n";


echo substr_replace($var, 'bob', 10, -1) . "<br />\n";
echo
substr_replace($var, 'bob', -7, -1) . "<br />\n";


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

To Top