Zdravim, nevi nekdo zda jde vyechovat promennou v databazi, ktera je vlozena v textu. Jde mi o to ze mam jisty text na strance a jedna jeho cast se nahrazuje promennou. Kdyz mam text v mysql a vlozim mezi nej promennou $promenna a dam
echo $data[text];
tak se vypise text, ale promenna se nenahradi.
Je nejaky zpusob jak tu promennou mezi ten text napsat, aby byla nahrazena a ne vypsana jako $promenna.
Diky za rady...
Nevim jak jinak to vysvetlit.. mozna chci neco co nelze..Mam v databazi tabulku, kde mam v sloupci TEXT ulozeny text dokumentu ktery nactu do promenne $data[TEXT]. A chci uprostred toho dokumentu pri generovani vysledne stranky vypsat pr. textovou reklamu ulozenou v promenne $reklama.
Jde mi o to, jak primo v te databazi zapsat mezit ten text tu promennou aby, pri echo $data[text]; byla promenna nahrazena textem.
Nevim kde delam chybu, ale pri pouziti eval(); se nevypise ani text ani promenna. Zkousel jsem to dle manualu na php.net
ukaz kod a rekni, co to dela a nedela
1 z databaze vytahnes $x
$x = "\$reklama";
2 a chces treba nahradit vsechny "\$reklama" za nejaky jiny text, treba "aaa"
3
$x = "aaa";
pak se to nazyva, viz TOM str_replace()
cz.php.net/str_replace
Cili zpusob sablonoveho systemu.
Pro zamenu bych pouzilval pole1 za pole2. Je to rychlejsi nes 100x zopakovat cyklus replace pro 100 ruznych zamen.
Vyresil to EReg_Replace();
Vyresil to EReg_Replace();
S kanónem na komára...
... cituji: "Pokud nepotřebujete složitá pravidla pro nahrazování, měli byste vždy použít tuto funkci místo ereg_replace() nebo preg_replace()."
A tohle vážně za složitý nahrazován nepovažuju ;)
Gandalf (trouble.borec.cz)
Viz TOM
v celku jde o to, ze str_replace nahrazuje retezce a ereg_repl k tomu pouziva regularni vyraz, coz muze byt casove narocnejsi.
Tom (manual.wz.cz)
Vis, ale zas je tam ten priklad s tim nahrazenim pole1 za pole2.
Muze to byt rychlejsi, protoze nezacina porovnavat od zacatu souboru, ale zrovna porovna vsechny polozky pole v aktualni pozici. Navic, regularni vyrazy jsou optimalizovany, takze by to minimalne melo byt srovnatelne jako STR v tomto pripade
pole1="a","b","c"
pole2="d","e","f"
prikaz(pole1,pole2,retezec)
"abc"
"a" == "a" ANO =>d, pokracuj
"b" == "a" NE
"b" == "b" ANO =>e
"c" == "a" NE
"c" == "b" NE
"c" == "c" ANO
A co treba neco jako
echo str_replace('<!-- MOJE REKLAMA -->', $reklama, $data['text']);