substr_replace
(PHP 4, PHP 5)
substr_replace — Ersetzt Text innerhalb einer Zeichenkette
Beschreibung
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.
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
replacement,startundlengthParameter 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
startpositiv, beginnt die Ersetzung ab der im Offset-Parameterstartdefinierten Stelle innerhalb vonstring.Ist
startnegativ, wird vom Ende der Zeichenkettestringbis zum Wert vonstartrü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 haben, wird die Funktion die Zeichenkettereplacementinstringan der durchstartbezeichneten Stelle einfügen.
Rückgabewerte
Der entstehende String wird zurückgegeben. Ist string
ein Array, wird auch ein Array zurückgegeben.
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 binary safe.
Siehe auch
- str_replace() - Ersetzt alle Vorkommen des Suchstrings durch einen anderen String
- substr() - Gibt einen Teil eines Strings zurück
- Zeichenketten Zugriff und Veränderung je Zeichen