Ahoj, pro jiny projekt jsem se snazil najit vhodny skript, ktery by zvyraznoval nalezena slova v textu
nasel jsem vynikajici navod na
[
http://php.vrana.cz/zvyrazneni-vysledku-vyhledavani.php]
sila reg.vyrazu a jednoduchost je opravdu genialni :)
Nekam do specifikace funkci se uvedou funkce (co ja vim treba do config.sys)
function odzvyraznit($matches)
{
return preg_replace('~<span class="search-result">([^<]*)</span>~i', '\\1', $matches[0]);
}
function zvyraznit($text)
{
$search = preg_quote(htmlspecialchars(stripslashes($_GET["search"])), '~');
if ($search) {
$text = preg_replace("~$search~i", '<span class="search-result">\\0</span>', $text);
// odstranění zvýrazňování z obsahu <option> a <textarea> a zevnitř značek a entit
$span = '<span class="search-result">[^<]*</span>';
$pattern = "~<(option|textarea)[\\s>]([^<]*$span)+|<([^>]*$span)+|&([^;]*$span)+~i";
$text = preg_replace_callback($pattern, 'odzvyraznit', $text);
}
return $text;
}
a do souboru, ktery generuje nejaky text (treba na uvod specfce?..ta je includovana do vsech souboru, ktere neco generuji), pak uvest na uvod tohoto jen
ob_start('zvyraznit'); // funkce pro vyhledavani
pripadne volat funkci zvyraznit s kazdym textem, ve kterem chceme neco zvyraznit (viz. link)
Pokud tedy je pak nejakemu souboru predan parametr $search (ci jiny, pak ale upravit funkci zvyraznit), je ve vygenerovanem textu hledane slovo (ci cast slova) zvyraznena dle definovaneho spanu (viz ve funkci zvyraznit, styl nutno doplnit si do sveho CSS!!!!) tohle slovo (ci cast) zvyraznena..
Mam ted ale mometlnae zatmeni a wokno:) a resim, jak to dovymyslet tak, aby to zvyraznovalo slova ve vysledcich, tedy slova zadana pres vyhledavaci formular (tedy jako $rstext, $GLOBALS["rstext"]...) nejen, kdyz je primo v adresnim radku definovan onen rozhodujici parametr rstext...
(vyhledavaci formular preda sve parametry search.php, tedy skript search.php jej preda sam sobe a nepredava tak 'rstext' "externe"..jako search.php?rstext=cokoliv)
Jak udelat, aby si skript pamatoval (nekam ulozil) obsah promenne rstext a ten pak mel k dispozici pro zvyrazneni... Pujde to urcite a bude to easy, ale jsem jaxi out
Poradte chlapaci :)
(??? ve funkci 'zvyraznit' zmenit misto 'search' neco na zpusob '$GLOBALS["rstext"]' ??? )
?
Celkem upraveno 3×. Poslední úprava mat. v 12.08.2005 14:58.