Autor | Zpráva | ||
---|---|---|---|
peteo Profil |
#1 · Zasláno: 25. 10. 2009, 23:13:06
prosím:
mám na stránkach Heuréka urobené vlastné vyhľadávanie, kde je pri vyhľadávaní ignorovaná veľkosť písmen a diakritika. Potreboval by som, aby pri vylistovaní výsledkov bol hľadaný text v bloku (alebo inak zvýraznený), aby hľadajúci vedel, že práve pre tento (nájdený) text bol výsledok vyhodnotený (rozdiel medzi súd, suď, sud, ale pri zadaní ktoréhokoľvek z týchto slov vyhodí všetky spomínané - a tie potrebujem zvýrazniť). ďakujem. |
||
SwimX Profil |
#2 · Zasláno: 25. 10. 2009, 23:17:16
peteo:
řekněme, že text který se vypisuje taháš z DB a hledané slov más v nějkaé POST proměnné: while($row = mysql_fetch_assoc($result)){ echo str_replace($_POST['hledane'], "<span class='red'>{$_POST['hledane']}</span>", $row['text']); } neřeší to ale i slova lišící se v diakritice, jak máš udělané hledání, že se hledá i v "podobných" slovech? Stačilo by to zde aplikovat ;) |
||
peteo Profil |
#3 · Zasláno: 25. 10. 2009, 23:54:43
problém, neťahám z databáze.
jedná sa o výcuc z txt súboru, mám uviesť celý kript? |
||
peteo Profil |
je to celý script:
<? $stare=array('á','ä','ą','â','ă','å','à','æ','â','à','å','æ','ă','à','â','ã','å','æ','č','ć','ç','ç','ç','ď','đ','đ','é','ę','ë','ě','è','ê','è','ê','ę','ě','ê','é','ë','í','î','ì','ï','ì','í','î','ï','ì','î','ï','ľ','ĺ','ň','ń','ñ','ñ','ñ','ó','ô','ö','ő','ò','õ','ő','ó','ô','õ','ö','ö','ř','ŕ','š','ś','ť','ţ','ţ','ú','ů','ű','ù','û','ü','ű','ù','û','ü','ü','ý','ž','ź','y','ý','<','>','"','Ž'); $nove=array('a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','a','c','c','c','c','c','d','d','d','e','e','e','e','e','e','e','e','e','e','e','e','e','i','i','i','i','i','i','i','i','i','i','i','l','l','n','n','n','n','n','o','o','o','o','o','o','o','o','o','o','o','o','r','r','s','s','t','t','t','u','u','u','u','u','u','u','u','u','u','u','y','z','z','i','i','.','.','.','z'); $book=Array("a","b","c","d","e","f","g","h","ch","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","!","0-9"); $dotaz = $_GET["dotaz"]; $slovo_pocet = substr_count($dotaz," ")+1; $slovo_dlzka = strlen($dotaz); $stop="konieczaznamu"; echo "Hľadaný výraz: "; echo $dotaz; $pocet=0; $dotaz_ci=strtolower($dotaz); $slovo = explode(" ", $dotaz_ci); for ($j=0; $j<$slovo_pocet; $j++) { $slovo_ci[$j] = str_replace($stare,$nove,$slovo[$j]); } if ($volba == "") { $volba = "1"; } if ($slovo_dlzka== "1") { echo "<br><br>Príliš krátky výraz pre vyhľadávanie.<br><br>"; echo "Pozri <a href='help.htm'>ako na to</a>."; $volba = ""; } if ($dotaz <> "") { if ($volba == "1") { for ($i=0; $i<29; $i++) { $soubor=fopen($book[$i], "r"); $text=""; while ($text<>$stop) { $text=fgets($soubor); $texta=strtolower($text); $text_ci = str_replace($stare,$nove,$texta); $test_komplet=0; for ($j=0; $j<$slovo_pocet; $j++) { $test=strpos($text_ci,$slovo_ci[$j]); if ($test === false) {} else { $test_komplet++; } } $test=($test_komplet==($slovo_pocet)); if ($test === false) { echo ""; } else { echo "<hr><h1><span>"; echo $text; $pocet++; if (($pocet/50)==(floor($pocet/50))) { echo "<center><hr><script type='text/javascript' charset='utf-8' src='http://sk.static.etargetnet.com/generic/advert.php?g=ref:17388,area:234x60,tabl:3,n:2,js:1,target:_new,logo:0,border_color:ffffff,background_color:ffffff,title_color:0066d5,title_underline:1,text_color:000000,font:tahoma' ></script></center>"; } } } fclose($soubor); } } if ($volba == "2") { for ($i=0; $i<29; $i++) { $soubor=fopen($book[$i], "r"); $text=""; while ($text<>$stop) { $text=fgets($soubor); $texta=strtolower($text); $text_ci = str_replace($stare,$nove,$texta); $test_komplet=0; for ($j=0; $j<$slovo_pocet; $j++) { $test=strpos($text_ci,$slovo_ci[$j]); if ($test === false) {} else { $test_komplet++; } } $test=($test_komplet>"0"); if ($test === false) { echo ""; } else { echo "<hr><h1><span>"; echo $text; $pocet++; if (($pocet/50)==(floor($pocet/50))) { echo "<center><hr><script type='text/javascript' charset='utf-8' src='http://sk.static.etargetnet.com/generic/advert.php?g=ref:17388,area:234x60,tabl:3,n:2,js:1,target:_new,logo:0,border_color:ffffff,background_color:ffffff,title_color:0066d5,title_underline:1,text_color:000000,font:tahoma' ></script></center>"; } } } fclose($soubor); } } echo "<hr><br>"; if ($pocet==0){ echo "<br>Hľadanie ukončené, nenájdený ani jeden záznam."; echo "<br><br>"; echo "Skúste zmeniť zadanie.<br>Zadajte len časť slova, ktoré hľadáte."; echo "<br><br>Pozri <a href='help.htm'>ako na to</a>."; } if ($pocet==1){ echo "Hľadanie ukončené, nájdený "; } if ($pocet>1 and $pocet<5){ echo "Hľadanie ukončené, nájdené "; } if ($pocet>4) { echo "Hľadanie ukončené, nájdených "; } if ($pocet<>0) { echo $pocet; } if ($pocet==1){ echo " záznam"; } if ($pocet>1 and $pocet<5){ echo " záznamy"; } if ($pocet>4) { echo " záznamov"; } } else { echo "Nebol zadaný žiaden výraz pre vyhľadávanie."; echo "<br><br>Pozri <a href='help.htm'>ako na to</a>."; } ?> Moderátor Alphard: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
|
||
Časová prodleva: 14 let
|
0