Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pitanje u vezi izrade skripte za pretragu

[es] :: PHP :: Pitanje u vezi izrade skripte za pretragu

[ Pregleda: 3061 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.1.14.vie.surfer.at

Sajt: www.baze-podataka.net


+2 Profil

icon Pitanje u vezi izrade skripte za pretragu07.08.2003. u 19:01 - pre 252 meseci
Trenutno pisem neku skriptu za pretragu baze sa podacima. Uradio sam to na dva nacina - prvo da se pretraga vrsi sa fulltext searchom, a ako ne nadje nista, onda da se pretraga vrsi sa klasicnim nacinom LIKE .
Kao rezultat ispisujem samo naslov odredjenog artikla, koji je ujedno i link za detaljnije informacije o tom artiklu.
Medjutim, zelio bih da kao rezultat pretrage osim naslova prikazem i dio opisa tog artikla, sa highlightovanim search pojmom. To mogu da uradim sa slijedecim jednostavnim nacinom:
Code:

$zamjena = '<span style="background-color: #FF9966">$1</span>';
$artikl_opis = preg_replace("/(\b".$trazi."\b)/imsu",$zamjena,$artikl_opis);


E sad, zelio bih recimo da ispisem 50 znakova iz opisa, pa onda highlightovani search pojam, pa onda opet 50 znakova iza toga.

Pokusao sam neke preg_replace patterne, ali nisam imao uspjeha. Citanje PHP manuala mi nije dalo puno pomoci ili zbog vrucine nisam u stanju da se dovoljno koncentrisem.
Da li neko ima rjesenje ?
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: Pitanje u vezi izrade skripte za pretragu07.08.2003. u 20:51 - pre 252 meseci
Imenjace, cim sam video ovaj tekst odmah se setih jednog davnog tutorijala na Zend-u: http://www.zend.com/zend/tut/tutorial-ferrara1.php ... Ako ne pomogne, onda cemo videti dalje...
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.1.14.vie.surfer.at

Sajt: www.baze-podataka.net


+2 Profil

icon Re: Pitanje u vezi izrade skripte za pretragu08.08.2003. u 01:33 - pre 252 meseci
Imenjace, hvala na linku. Vrlo je poucan, ali nazalost nema ono sta meni treba.

Fulltext search sam savladao i sve radi kako treba kad ne moram da prikazujem 50 znakova (ili koliko vec ima) prije trazenog pojma, zatim trazeni pojam, pa na kraju slijedecih 50 znakova (ili koliko ih je vec ostalo) u zadanom stringu. Ako mi preg_replace vraca back reference u obliku:

tekst prije trazenog pojma = $1 ili \\1
trazeni pojam = $2 ili \\2
tekst nakon trazenog pojma = $3 ili \\3

ja zelim da ih obradim na nacin:
substr($1,0,50)."<span class=\"background-color: #FFFF00; color: #000000\">".$2."</span>".substr($3,0,50)

Pokusavao sam neke nacine sa substring, ali ne ide. Dakle, treba mi samo odgovarajuci regexp za to.
Ako neko zna, bio bih mu vrlo zahvalan.

Nastavljam dalje da trazim rjesenje...

PS: Nasao sam neke korisne linkove za highlight trazenih pojama, pa ako mogu nekome biti od koristi, evo ih:
http://blogs.linux.ie/xeer/archives/p/89490286/c/1
http://www.textism.com/tools/google_hilite/
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
195.250.117.*



+257 Profil

icon Re: Pitanje u vezi izrade skripte za pretragu08.08.2003. u 10:41 - pre 252 meseci
Jedino sto mi trenutno pada na pamet je da (pretpostavljam da ti nadjes ceo opis i stavis ga u promenljivu - znaci select opis from tabela where uslov ide u recimo promenljivu $a) podelis promenljivu $a na jedan veliki niz:
$b= explode ($a, " ");
zatim da nadjes velicinu niza (strlenght valjda to bese radi), da pronadjes u kom elementu niza (recimo stavis ga u promenljivu $gde) se nalazi trazena rec (ako je rec u pitanju, ako je izraz to vec komplikuje situaciju), i da uradis jednu for petlju od $gde-50 do $gde+50 i ispises te reci (i dodas space-ove izmedju)

Ovo je mozda "malo" ruzno resenje, ali samo to mi sad pada na pamet.

Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.verat.net

Sajt: localhost


+5 Profil

icon Re: Pitanje u vezi izrade skripte za pretragu08.08.2003. u 13:12 - pre 252 meseci
probaj ovo:

Code:

$text="bla bla i truc i opet ja vama zelim da vi lepo porastete i da se posle 
lepo igrate i sta ti ja znam vise, ali ja znam da vi opet volite svoju zemlju".
$rec="vi";

preg_match_all("~(.{0,5}) ($rec) (.{0,5})~is", $text, $a);
foreach ($a[0] as $r) {
    echo preg_replace("~$rec~iUs", "<b>$0</b>", $r)."<p>";
}


(ovo prikazuje po 5 karaktera sa strane.. nadam se da znaš da prepraviš na 50 ;)

 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.1.14.vie.surfer.at

Sajt: www.baze-podataka.net


+2 Profil

icon Re: Pitanje u vezi izrade skripte za pretragu08.08.2003. u 22:18 - pre 252 meseci
-zombie- da, preg_match_all sam zaboravio upotrijebiti. Hvala na savjetu.

Uspio sam nekako srediti da mi to radi sa plain textom i radice u vecini slucajeva.
Medjutim, kad za taj opis koristim i HTML tagove za podebljavanje teksta ili neki drugi tag, desi se da mi tih 50 znakova zahvati i te tagove, pa se onda prikaz rezultata pretrage malo poremeti.
Sad cu pokusati da sredim nekako da u pretrazi ignorira HTML tagove i njihove atribute. Vjerovatno ce strip_tags tu uletiti u igru.

Rjesenje cu naravno objaviti ovdje :) (Ako ga nadjem :( :) )
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

[es] :: PHP :: Pitanje u vezi izrade skripte za pretragu

[ Pregleda: 3061 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.