>potreboval bych v textu nahradit jednu promenou, promenou jinou...
>zkousel jsem to pres fci StrTr("$text_v_souboru", $stara_hodnota,
>$nova_hodnota) ale to jaxi nefunguje :)
to samozrejme fungovat nemuze, coz ti uz vysvetlili jini. ale POKUD
jsem pochopil o co ti jde, tak chces menit primy ZAPIS PROMENNE
ve stringu:
... k obedu bude $ovoce a $salat a k veceri...
bys chtel zmenit na
... k obedu bude $maso a $moucnik a k veceri...,
aby se pak pri vystupu textu objevily hodnoty tech ci onech promennych.
je-li tomu tak, neni tvuj problem trivialni a je tady par uskali:
a) musi to byt string nacteny ze souboru, nebo definovany literalem
v apostrofech $str='...k obedu bude $maso ...';
b) nesmi to byt string definovany (kdekoliv) literalem v uvozovkach:
$str="...k obedu bude $maso ...";, protoze takovy string se hned
zkompiluje a misto literalu s nazvy tech promennych tam uz jsou
natvrdo jen jejich hodnoty.
c) apostrofy musis pouzit i ve fci, kterou ty nazvy promennych budes
menit. treba: $str=str_replace('$ovoce','$maso',$str);
pokud chces jenom provest replace nejakych $.... v textovem souboru,
pak to staci. budes-li ale chtit nezkompilovany string pouzit pro vystup
tak, aby se vypsaly HODNOTY tech promennych a ne jenom jejich nazvy,
tak musis takovy string jeste navic zkompilovat - treba pomoci eval().
zkompilujeme ho napriklad do stringu $vystup:
eval("\$vystup=\"$str\";"); // pozor na pouziti " a \
nebo jednodussim zapisem bez \
eval('$vystup="'.$str.'";'); // pozor na ' a "
tohle vsechno ale plati jenom v pripade, ze jsem dobre pochopil tvoje
prani "...v textu nahradit jednu promenou, promenou jinou...".
bye, spock.
This archive was generated by hypermail 2.1.2 : 04. 09. 2001, 05:42 CEST