2010-08-15 4 views
26

Wie kann ich str_ireplace (oder etwas Ähnliches) verwenden, um Text für die Formatierung zu ersetzen, und ihn dann mit den gleichen Großbuchstaben zurückgeben?str_ireplace() mit der Beibehaltung der Groß-/Kleinschreibung

Beispiel:

$original="The quick red fox jumps over the lazy brown dog."; 
$find="thE"; 

print str_ireplace($find,'<b>'.$find.'</b>',$original); 

Das wird ausgegeben: die schnell rot Fuchs springt über den faulen braunen Hund.

Ich möchte es den ursprünglichen Fall beibehalten und nur die Formatierung, in diesem Beispiel, fett formatieren.

Vielen Dank.

Antwort

39
$original = "The quick red fox jumps over the lazy brown dog."; 
$new = preg_replace("/the/i", "<b>\$0</b>", $original); 

gibt "Die schnell Rotfuchs über springt der faul braunen Hund." Wenn Sie bestimmte Wörter zuordnen möchten, können Sie Wortgrenzen hinzufügen: preg_replace('/\bthe\b/i', ....

Wenn Sie den Ersatz parametrieren möchten, können Sie preg_quote verwenden können:

preg_replace('/\b' . preg_quote($word, "/") . '\b/i', "<b>\$0</b>", $original); 
+0

Ausgezeichnet, danke. – Francisc

+0

* Der schnelle braune Fuchs springt über den faulen Hund – Popnoodles

2

Entweder mit dem genauen Wort ersetzen, oder verwenden Sie preg_replace:

preg_replace('/(The)/i', "<strong>$1</strong>", $original); 
+0

Danke, mhitza. – Francisc

Verwandte Themen