PHP PHP preg_replace - Code kürzen

Überkinger

Lieutenant
Registriert
Juli 2010
Beiträge
600
Hallo,

kann ich folgenden Code nochmals kürzen?

PHP:
	$content_htm = preg_replace ("#Montag#si","<b>Montag</b>",$content_htm);
	$content_htm = preg_replace ("#Dienstag#si","<b>Dienstag</b>",$content_htm);
	$content_htm = preg_replace ("#Mittwoch#si","<b>Mittwoch</b>",$content_htm);
	$content_htm = preg_replace ("#Donnerstag#si","<b>Donnerstag</b>",$content_htm);
	$content_htm = preg_replace ("#Freitag#si","<b>Freitag</b>",$content_htm);
	$content_htm = preg_replace ("#Samstag#si","<b>Samstag</b>",$content_htm);
	$content_htm = preg_replace ("#Sonntag#si","<b>Sonntag</b>",$content_htm);
 
da du keine regulären ausdrücke verwenden willst (?), würde es mit dieser methode kürzer gehen:

$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);
 
Code:
$content_htm = preg_replace( '#(montag|dienstag|mittwoch|donnerstag|freitag|samstag|sonntag)#i', '<b>$1</b>', $content_htm );
Ungetestet.
 
Mexxim schrieb:
da du keine regulären ausdrücke verwenden willst (?), würde es mit dieser methode kürzer gehen:

$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);

Danke schön. Ginge es denn mit reg_ex besser/kürzer?
 
Du benutzt zwar die Reg-Ex-Funktionen, aber für diese simplen Ersetzungen ist gar kein regulärer Ausdruck nötig. Deshalb ist die Lösung mit str_replace() in jedem Fall die bessere.
 
Zumal Regex nur unnötig langsam sind.
str_replace sollte in deinem Fall deutlich schneller laufen.
 
Eben... Die Länge des Codes ist irrelevant, es kommt nur auf die Ausführungsgeschwindigkeit an... und da sind RegEx das letzte Mittel, zu dem man greift, nicht die Standardlösung.
 
Zurück
Oben