|
Ako imate imate nekih posebnih zelja u vezi tema o kojima
pisemo, suradnje ili slicnoga, uvijek nas mozete kontakirati.
Oznacite rezultate pretrazivanja pomocu PHP-a
Napisao: Darko Martic © 2001
- 2002
Ovaj clanak ce vam pomoci da unaprijedite vlastiti search
engine i pomognete svojim posjetiteljima da se lakse snadju
u rezultatima pretrazivanja. Pokazat cemo kako na jednostavan
nacin trazenu rijec unutar teksta dodatno istaknuti, bas kao
sto to rade najbolje svjetske trazilice poput Googlea.
Upravo ste napravili svoj prvi search engine, no nesto vam nedostaje.
Htjeli bi ste ga nekako usminkati, unaprijediti ga. Prvo sto mi pada
na pamet je da trazena rijec unutar teksta bude istaknuta, odnosno
da unutar samog teksta tu rijec recimo podebljate (bold) na svim mjestima
gdje se ona pojavljuje.
Tehnicka izvedba je vrlo jednostavna i razumljiva. Sve sto je potrebno
napraviti jest proletjeti kroz tekst i redom ga prepisivati u neku
privremenu varijablu.
Kad naidjete na trazenu rijec, prvo ubacite otvarajuci HTML tag, nakon
toga trazenu rijec i na kraju zatvarajuci tag, i tako nastaviti do
kraja teksta.
Samo koristenje je krajnje jednostavno. Primjer pozivanja funkcije:
<?php
include("darko.lib.php");
$original = "ovdje nesto pise";
echo str_keyword($original, "nesto", "<b>_-_</b>", 0);
?>
Prethodni primjer ce traziti i zadebljati string 'nesto' unutar string
varijable '$original'.
Predzadnji parametar govori koji ce HTML tag biti primjenjen nad
pronadjenim stringom.
Otvarajuci i zatvarajuci HTML tagovi moraju biti odvojeni s '_-_'
nizom znakova kako bi ih funkcija mogla razdvojiti.
Zadnjim parametrom definirate da li da se pazi na velika/mala slova
ili ne (case sensitive).
Mogli ste primijetiti da se funkcija pozvala kao parametar 'echo'
funkcije, sto nam zapravo govori da funkcija 'str_keyword' vraca string
kao rezultat izvodjenja.
Sljedeci dio koda slobodno mozete pohraniti u datoteku npr. 'darko.lib.php'
te je isprobati u kombinaciji s navedenim primjerom:
<?php
function str_keyword($orig, $keyword, $tag, $case) {
// ako je trazena rijec prazan string, vraca se // originalni tekst
if(trim($keyword)=="") return $orig;
// razdvajanje otvarajuceg i zatvarajuceg HTML taga
$tag = explode("_-_", $tag);
for($i=0;$i<strlen($orig);$i++) {
// dio iz originalnog stringa koji se trenutno // usporedjuje s trazenom rijeci
$orig_part = substr($orig,$i,strlen($keyword));
// velika/mala slova nisu bitna
if($case == 0) $compare = 'strcasecmp';
// pazi na velika/mala slova
else $compare = 'strcmp';
// slaganje upita s obzirom na zadnji parametar funkcije
$compare = 'if(!'.$compare.'($orig_part,$keyword)) return true;
else return false;';
// ako su stringovi jednaki, ispisi otvarajuci tag,
// zatim trazeni string i na kraju zatvarajuci tag
if(eval($compare)) {
$withtag .= $tag[0].$orig_part.$tag[1];
$i += (strlen($keyword)-1);
}
// nisu isti, prepisi iz originala
else $withtag .= $orig[$i];
}
// na kraju usporedbe vrati preuredjeni tekst s // nadodanim tagovima
return $withtag;
}
?>
O autoru:
Darko Martic (darko@crodeveloper.com)
- Student informatike u Zagrebu, te uz studij radi kao web
developer u UniSetu (http://www.uniset.hr).
Vlasnik je CROdeveloper.com (http://www.crodeveloper.com)
stranice. Neki od radova: novi http://www.nacional.hr
(cjelokupan programerski dio,
admin sucelje), nekoliko web shopova (http://www.discoveryfilm.hr,
http://www.eicom.hr, http://www.edz.hr),
http://www.autocamp-matija.com).
|
Vi pitate, mi odgovaramo
> Zanimaju me tocni podaci o standardnim velicinama
> reklamnih bannera.
Standardi kod bannera nisu striktno odredjeni, vec ih
'preporucaju' razne organizacije kao sto je npr. The
Internet Advertising Bureau (http://www.iab.net/).
| Velicina bannera |
Tip bannera |
| |
|
| 468 x 60 |
Full horizontal banner |
| 460 x 55 |
Full horizontal banner |
| 234 x 60 |
Half banner |
| 125 x 125 |
Square banner |
| 120 x 240 |
Vertical banner |
| 120 x 90 |
Button 1 |
| 120 x 60 |
Button 2 |
| 88 x 31 |
Micro button |
| |
|
120 x 600
|
Skyscraper |
| 160 x 600 |
Wide Skyscraper |
| |
|
| 180 x 150 |
Rectangle |
| 300 x 250 |
Medium Rectangle |
| 336 x 280 |
Large Rectangle |
| 240 x 400 |
Vertical Rectangle |
| |
|
| 250 x 250 |
Square Pop-up |
Na pitanje odgovorio:
Marko Radelic
|
|