Zdravim! Neporadil by mi pls nekdo jak se dela u vyhledavani urcityho slova z databaze dokumentu ten konečnej výpis, kde to hledane slovo je napsane treba tucnym pismem? Dik
sice presne nechapu co myslis ale rek bych ze neco jako dela seznam.cz ne?? tak pro zacatek v databazi vyhledavas '%$slovo%' a pro zvyrazneni $slova pouzijes treba
eregi_replace("(.*)(".$slovo.")(.*)","\\1<B>\\2</B>\\3",$veta);
jesi neco nechapes dotazuj se jeste jednou ja ti poradim
jo presme tak sem to myslel.
Takze ja si ulozim vypis z DB do promenne a potom
$vysledek = mysql_result( blablabla....
a potom si pomoci ty fce eregi_replace vyhledam to slovo a zamenim ho na slovo oramovane tagem <b>
jaky sou prosim presny parametry ty fce? kam mam co napsat?
eregi_replace("(.*)(".$slovo.")(.*)","\\1\\2\\3",$veta);
Dik
ne-e: \\!!!<B>!!!\\2!!!</B>!!!\\3 - na <B> tagy nezapominej pak bys to ani nemusel psat ..
$veta = "blablaMUJTEXTblabla";
$slovo = "mujtext";
$veta = eregi_replace("(.*)(".$slovo.")(.*)","\\1<B>\\2</B>\\3",$veta);
echo $veta;
- abych ti trochu vysvetlil ten reg. vyraz, do prvni casti( "(.*)(".$slovo.")(.*)" ) napises co musi text(treti cast - $veta) splnovat aby se zmenil na druhou cast ( "\\1<B>\\2</B>\\3" ) ..
(.*) - zavorkama si vytvoris podvyraz .. tenhle je prvni a proto na nej v druhy casti odkazujes jako \\1,
. znamena jakykoliv znak a * opakovany libovolne mockrat - to je to "blabla" ... pak nasleduje
(".$slovo.") - to je durhej podvyraz a ten chces mit tucne tak proto <B>\\2</B> .. ale pozor nemuzes napsat jen ($slovo) protoze dolar taky znamena konec retezce ..
no a nakonec zase libovolne moc znaku to bude stejny jako u \\1
... btw o regularnich vyrazech se doctes i na netu ale musis trochu hledat
- uz chnapes??
blabla MUJTEXT mujtext blabla mujtext
tohle kdyz zadam do promenne veta, tak se zvyrazni pouze to posledni slovo? Nejak se mi to nedari rozchodit.
Ale jinak dik za nakopnuti
hele a proc tam davas (.*) kdyz ten vyraz neni ukotvenej?
ja bych to napsal
$veta=preg_replace('/('.preg_quote($slovo).')/'),'<b>\\1</b>');
preg_quote tam je pro pripad ze by slovo obsahovalo naky ridici znaky..
jinak tohle ti to slovo nahradi vsude..
ereg_replace by slo samozrejme pouzit taky, ale pcre je rychlejsi a vubec.. POSIX je dneska uz v podstate zapomenuty standard :-)
> hoppik vyzkousej radejc to bohdanovo
> bohdan ponevac sem jeste nevidel jinej zpusob a vubec ani tenhle zpusob sem nikde nevidel :-) ale ve vsech tech manualech na internetu sem nasel hlavne eregi_replace a ereg_replace takze vlastne ani nic jinyho neumim
to Bohdanovo mi nejak nejde. vubec nic to neudela. dokonce to odstrani i obsah promene $slovo
jo..sory
$veta=preg_replace('/('.preg_quote($slovo).')/','<b>\\1</b>',$veta);
Porad nic.
$veta = blabla MUJTEXT mujtext blabla mujtext
vyhodi to tohle: blabla MUJTEXT <b>mujtext</b> blabla <b>mujtext</b>
- to MUJTEXT s velkyma pismenama bohuzel zvyrazneny nebylo.
kdyz jsem skousel to eregi_replace, tak tam to nezalezelo na velikosti. ale zase to zvyraznilo pouze jeden vyskyt toho slova a ostatni to uz ignorovalo.
ja bych prave chtel, aby nezalezelo na tom jakyma pismenama to bude napsany (Jestli velkejma nebo malejma).
Nevite proc to nejde?
$veta=preg_replace('/('.preg_quote($slovo).')/i','<b>\\1</b>',$veta);