preg_replace - Ich blicke nicht durch

WorldRacer

Erfahrenes Mitglied
Hi,

ich habe folgendes vor:

mein Skript soll innerhalb eines Strings {title} durch den Wert der Variable $title ersetzen. Wie mach ich das mit preg_replace? Hab schon gegooglet, aber nix gescheites gefunden. Vielen Dank schonmal im voraus
 
Hi,

verwende doch die Funktion str_replace().
PHP:
$vorher = "Dies ist der ursprüngliche String, in dem Du einen {test} austauscht!";
$nachher = str_replace("{test}","Teilstring",$vorher);

print $nachher;
// Ergibt als Ausgabe:
// "Dies ist der ursprüngliche String, in dem Du einen Teilstring austauscht!"

Jo, PIfreak war schneller!
 
Zuletzt bearbeitet:
Komplett dynamisch, aber leider um die Ecke herum und relativ langsam durch preg_*:
PHP:
$html = "<b>{title}</b>";
$title = "foo";
preg_match_all("/{(\w*)}/", $html, $aMatch);

$len = count($aMatch[0]);
for ($i = 0; $i < $len; $i++) {
	$aReplace[$aMatch[0][$i]] = $$aMatch[1][$i];
}

$html = strtr($html, $aReplace);
 
Zuletzt bearbeitet:
Ich schließe mich meinem Vorredner an.

Wenn ich mich recht entsinne dann ist str_replace schneller als preg_replace.

Aber ich schreibe Dir nochmal die beide Wege auf.

$wert="xxxx";

1. ) mit str_replace
$wert=str_replace("xxx","XXX",$wert);

2. mit preg_replace
<?php
$zeichenkette = 'Der schnelle braune Fuchs sprang über den faulen Hund.';

$suchmuster[0] = '/schnelle/';
$suchmuster[1] = '/braune/';
$suchmuster[2] = '/Fuchs/';

$ersetzungen[2] = 'Bär';
$ersetzungen[1] = 'schwarze';
$ersetzungen[0] = 'langsame';

echo preg_replace($suchmuster, $ersetzungen, $zeichenkette);
?>

preg_replace macht nur Sinn wenn reguläre Ausdrücke verwendet werden sollen.
 
Zurück