Zdravim.
Chtel bych v textovym retezci zvyraznit urcite slovo, ale fce StrReplace rozlisuje mala a velka pismena. Jak mam udelat aby to fungovalo kdyz dam slovo auto tak aby se premenilo i <B>Auto</B> nebo <B>AUTO</B>, <B>aUTo</B>...
Dik za rady
                                 
                                 
                               
               
                              
               
                              
                                 
                                      nejak me ta fce nefaka, asi tam mam neco spatne, pomohl by me s tim nekdo?
                                 
                                 
                               
               
                              
                                 
                                      eregi_replace(regulérní výraz, náhrada, řetězec);
Regulérní výraz tě učit nebudu, náhrada je ta věc, za kterou chceš ten text nahradit a řetězec je proměná, kde máš uloženej ten text
Snad takhle:
$vzkaz = 'auto je na ho...';
eregi_replace('auto', '<b>auto</b>', $vzkaz);
                                 
                                 
                               
               
                              
                                 
                                      Super, jde to...
ale jeste jednu vec - jak mam udelat, aby:
auto zamenil za <B>auto</B>
Auto zamenil za <B>Auto</B>
AUTO zamenil za <B>AUTO</B>
ted se vsechny typy slov AUTO zameni za <b>auto</b>
                                 
                                 
                               
               
                              
                                 
                                      takhle: 
$vzkaz = 'auto je na ho...';
eregi_replace("(auto)", "<b>//1</b>", $vzkaz);
                                 
                                 
                               
               
                              
                                 
                                      Díky Mastře, aspoň se nemusim snažit prohledávat mý zdrojáky :-)))
                                 
                                 
                               
               
                              
                                 
                                      neni zac :)
ale spletl jsem si lomitka takze to je takhle:
$vzkaz = 'auto je na ho...';
eregi_replace("(auto)", "<b>\\1</b>", $vzkaz);
                                 
                                 
                               
               
                              
                                 
                                      panove me to teda nefaka...
<?
$zdroj = "bla bla MUJTEXT bla bla mujtext bla bla Mujtext";
$najdi = "mujtext";
$vysledek = eregi_replace("(".$najdi.")", "\\1", $zdroj);
?>
ZDROJ: <? echo $zdroj; ?><BR>
NAJIT SLOVO: <? echo $najit; ?><BR>
VYSLEDEK: <? echo $vysledek; ?>
uz fakt nevim co stim...
                                 
                                 
                               
               
                              
                                 
                                      eregi_replace("(".$najdi.")", "\\1", $zdroj);
Zkus taky nahradit " za '
eregi_replace("('.$najdi.')", "\\1", $zdroj);
a stejně je to blbost, já typuju takhle:
eregi_replace("[[:<:]]mujtext[[:>:]]", "\\1", $zdroj);
toto [[:<:]] řekne, že to má být začátek slova a to druhý [[:>:]] konec
                                 
                                 
                               
               
                              
                                 
                                      eregi_replace("[[:<:]]mujtext[[:>:]]", "\\1", $zdroj);
a kde je v tomhle prikazu zapsano aby z toho mujtext udelal <B>mujtext</B>
To proste nechapu...
                                 
                                 
                               
               
                              
                                 
                                      Tak sory, já se pořádně nepodíval, tos tam špatně napsal ty
Zkus to takhkle:
eregi_replace("[[:<:]]mujtext[[:>:]]", "<b>\\1</b>", $zdroj);
Jo jinak se někde podívej po regulérních výrazech, třeba v knížce o PHP od Koska
                                 
                                 
                               
               
                              
                                 
                                      Kdyby Ti to fakt furt nešlo, tak mi napiš e-mail
                                 
                                 
                               
               
                              
                                 
                                      <?
$veta = "blabla MUJTEXT mujtext blabla Mujtext";
$opr = eregi_replace("[[:<:]]mujtext[[:>:]]", "<b>\\1</b>", $veta);
?>
VETA:
<?
echo $veta;
?><BR>
OPRAVENO:
<?
echo $opr;
?>
Vyhodi to tohle:
VETA:
blabla MUJTEXT mujtext blabla Mujtext<BR>
SLOVO:
mujtext<BR>
OPRAVENO:
blabla <b>\1</b> <b>\1</b> blabla <b>\1</b>
                                 
                                 
                               
               
                              
                                 
                                      <?
$veta = "blabla MUJTEXT mujtext blabla Mujtext";
$opr = eregi_replace("[[:<:]]mujtext[[:>:]]", "<b>\\1</b>", $veta);
?>
VETA:
<?
echo $veta;
?><BR>
OPRAVENO:
<?
echo $opr;
?>
Vyhodi to tohle:
VETA:
blabla MUJTEXT mujtext blabla Mujtext<BR>
SLOVO:
mujtext<BR>
OPRAVENO:
blabla <b>\1</b> <b>\1</b> blabla <b>\1</b>
                                 
                                 
                               
               
                              
                                 
                                      kdyz uz tak
eregi_replace("([[:<:]]mujtext[[:>:]])", "<b>\\1</b>", $veta);
nebo
eregi_replace("[[:<:]]mujtext[[:>:]]", "<b>\\0</b>", $veta);
                                 
                                 
                               
               
                              
                                 
                                      Předtim jsem to nezkoušel. Teď jsem si spustil apache a zjistil jsem, že tam chyběj jen závorky
<?
$veta = "blabla MUJTEXT mujtext blabla Mujtext";
$opr = eregi_replace("(mujtext)", "<b>\\1</b>", $veta);
?>
VETA:
<?
echo $veta;
?><BR>
OPRAVENO:
<?
echo $opr;
?>
                                 
                                 
                               
               
                              
                                 
                                      to chybely mas pravdu, s tema [[:<:]] [[:>:]] by ti to zvyraznilo jen samostatny slova a ne ty co se vyskytujou v jinym slove .. to uz zalezi na tobe
                                 
                                 
                               
               
                              
                                 
                                      $opr = eregi_replace("(".$slovo.")", "<b>\\1</b>", $veta);
$opr2 = eregi_replace("[[:<:]]mujtext[[:>:]]", "<b>\\0</b>", $veta);
$opr3 = eregi_replace("([[:<:]]mujtext[[:>:]])", "<b>\\1</b>", $veta);
tyhlety uz fakaji ok.
Vysvetlil by mi nekdo jakej je rozdil v zapisu 2 a 3?
fungujou oba stejne a nemuzu v nich najit rozdil...
                                 
                                 
                               
               
                              
                                 
                                      \0 znamena 'cely string, ktery vyhovuje', kdezto \1 'prvni cast' - ale protoze je tu jenom jedna cast, tak mezi tim neni rozdil
                                 
                                 
                               
               
                              
                                 
                                      a 'cast' neboli podvyraz vytvoris pomoci tech kulatych zavorek :-) koukni na http://www.regexp.cz/ tam je to jednoduse a srozumitelne