Autor Zpráva
jonge
Profil
Mám určitý text a chci, aby se v něm změnilo:
{datum "d.m.Y"}
na např.
15.12.2006

Mám tento regexp:
$text = preg_replace("/\{datum \"(.*)\"\}/", date("$1"), $text);

Bohužel se datum nahradí špatně, vznikne "d.m.Y". Když jsem místo toho zkoušel dát
$text = preg_replace("/\{datum \"(.*)\"\}/", date("d.m.Y"), $text);
tak se datum změnilo správně. Přitom $1 je stejné jako "d.m.Y". Opravdu to nechápu... Jak se dávají do preg_replace správně funkce?
DoubleThink
Profil *
Možná bych zkusil použít eval()
jonge
Profil
DoubleThink
To mi kdosi říkal, jenomže já nevím jak :( mohl bys mi plosím pěkně napsat ten kód? Doufám že tě jeden řádek nezabije 8-)
DoubleThink
Profil *
Beru zpět - eval je tady na nic.

Musíš použít "e" modifikátor:
$text = preg_replace("/\{datum \"(.*)\"\}/e", "date('\\1')", $text);
jonge
Profil
DoubleThink
Ooooh díky díky, ruku líbám zachránče :o)
Toto téma je uzamčeno. Odpověď nelze zaslat.