Re: PHP

From: Spock (spock@bfs.cz)
Date: 25. 02. 2001, 14:16 CET


>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