Pokud jste někdy přemýšleli jak vybrat texty z databáze a potom v nich provést PHP kód, tak mám pro vás malou ukázku.
Určitě jste si všimli, že existuje funkce eval();, která provede PHP kód podle řetězce… tak od toho je jen malý krůček k vytvoření vlastní funkce, která vám přeloží PHP kód, uzavřený ve značce <php></php>
<?php function provedcode($pole) { eval("\$pole[2] = $pole[2];"); return $pole[2]; } $retezec = "Dnes je: <php>date('d. m. Y');</php>"; echo preg_replace_callback("/(<php>)(.*?)(<\/php>)/si", "provedcode", $retezec); ?>
Funkce provedcode(); provede PHP kód a vrátí jeho výstup.
Kliknutím na PHP funkce, tak se dostanete na stránky s PHP manuálem, kde jsou jednotlivé funkce podrobně vysvětleny.
Nefunguje, když udělám víc <php></php>
$retezec = "Dnes je: <php> date('d. m. Y');</php> a <php>date();</php>";
mi vyhodí tohle:
Parse error: syntax error, unexpected '<' in S:\dev\prog\template\index.php(5) : eval()'d code on line 1
Dnes je: date('d. m. Y'); a date();
Bohužel Vypadalo to dobře…
Reakce na tark #1Načítám náhled komentáře...: Díky za info, přebývalo mi tam jedno zpětné lomítko a chyběl otazník. Už je to opraveno. Každopádně funkci date();
nemůžeš napsat bez parametru, který udává formát datumu.
diky moc… btw, jakej pouzivas render, ze ti to dava do php kodu ty odkazy?