PHP Handbuch
Zurück |  | Weiter

# str_replace

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

str_replace -- Ersetzt alle Vorkommen des Suchstrings durch einen anderen String

## Beschreibung

mixed str_replace ( mixed search, mixed replace, mixed subject [, int &count] )

Diese Funktion gibt einen String oder ein Array zurück, in dem alle Vorkommen von `search` innerhalb von `subject` durch den angegebenen `replace`-Wert ersetzt wurden. Wenn Sie keine ausgefallenen Ersetzungsregeln (wie Regular Expressions) benötigen, sollten Sie immer diese Funktion anstelle von ereg_replace() oder preg_replace() verwenden.

Seit PHP 4.0.5 kann jeder Parameter von str_replace() vom Type array sein.

Warnung

Die PHP-Versionen vor PHP 4.3.3 enthalten einen Bug, der bei der Verwendung von Arrays für `search` und `replace` dazu führt, dass leere `search`-Indexe übersprungen werden, ohne dabei den internen Zeiger innerhalb des `replace`-Arrays ebenfalls weiter zu bewegen. Dies wurde in PHP 4.3.3 korrigiert. Alle Skripte, die sich auf diesen Bug verlassen, sollten leere Suchwerte entfernen, bevor diese Funktion aufgerufen wird, um die ursprüngliche Verhalten zu imitieren.

Ist `subject` ein Array, erfolgt das Suchen und Ersetzen für jeder Wert von `subject`, und der Rückgabewert ist ebenfalls ein Array.

Sind `search` und `replace` Arrays, nimmt str_replace() je einen Wert beider Arrays und verwendet diese zum Suchen und Ersetzen in `subject`. Hat `replace` weniger Werte als `search`, so wird ein leerer String zum Ersetzen für den Rest der Werte verwendet. Ist `search` ein Array und `replace` ein String, dann wird dieser String für jeden Wert von `search` angewandt. Das Gegenteil ist nicht sinnvoll.

Sind `search` und/oder `replace` Arrays, werden ihre Elemente vom ersten zum letzten hin verarbeitet.

Beispiel 1. str_replace()-Beispiele

`<?php
// Liefert: <body text='schwarz'>
$bodytag = str_replace("%body%", "schwarz", "<body text='%body%'>");
// Liefert: Hll PHP-Wlt
$vokale = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vokale, "", "Hallo PHP-Welt");
// Liefert: Sie sollten taeglich Pizza, Bier und Eiscreme essen.
$phrase = "Sie sollten taeglich Fruechte, Gemuese und Ballaststoffe essen.";
$gesund = array("Fruechte", "Gemuese", "Ballaststoffe");
$lecker = array("Pizza", "Bier", "Eiscreme");
$newphrase = str_replace($gesund, $lecker, $phrase);
// Die Verwendung des count-Parameters ist ab PHP 5.0.0 möglich
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count; // 2
// Reihenfolge von Ersetzungen
$str = "Zeile 1\nZeile 2\rZeile 3\r\nZeile 4\n";
$order = array("\r\n", "\n", "\r");
$replace = '<br />';
// Verarbeitet \r\n's zuerst, so dass sie nicht doppelt konvertiert werden
$newstr = str_replace($order, $replace, $str);
?>`

> Anmerkung: Diese Funktion ist binary safe.

> Anmerkung: Ab PHP 5.0.0 wird die Anzahl der gefundenen und ersetzten Suchbegriffe (`search`) mittels `count` zurück gegeben, der als Referenz übergeben wird. Vor PHP 5.0.0 ist dieser Parameter nicht verfügbar.

Siehe auch str_ireplace(), substr_replace(), preg_replace() und strtr().

Zurück | Zum Anfang | Weiter
str_repeat | Nach oben | str_rot13