/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
offline søgefunktion i php
Fra : Jakob Petersen


Dato : 14-04-05 07:46

Er det muligt at lave en offline søgemaskine i php?

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Jacob Atzen (14-04-2005)
Kommentar
Fra : Jacob Atzen


Dato : 14-04-05 07:57

On 2005-04-14, Jakob Petersen <jakobpetersen1986@hotmail.com> wrote:
> Er det muligt at lave en offline søgemaskine i php?

Det korte svar: Ja.

Det lange svar: PHP kan sagtens bruges fra kommandolinien (offline) og
teoretisk set kan man lave det samme i PHP som i alle andre sprog. Så
hvis sådan en fætter kan laves i et andet sprog kan den også laves i
PHP.

--
Med venlig hilsen
- Jacob Atzen

Jakob Petersen (14-04-2005)
Kommentar
Fra : Jakob Petersen


Dato : 14-04-05 10:03

Jacob Atzen wrote in dk.edb.internet.webdesign.serverside.php:
> On 2005-04-14, Jakob Petersen <jakobpetersen1986@hotmail.com> wrote:
> > Er det muligt at lave en offline søgemaskine i php?
>
> Det korte svar: Ja.
>
> Det lange svar: PHP kan sagtens bruges fra kommandolinien (offline)
og
> teoretisk set kan man lave det samme i PHP som i alle andre sprog. Så
> hvis sådan en fætter kan laves i et andet sprog kan den også laves i
> PHP.
>
> --
> Med venlig hilsen
> - Jacob Atzen

>
>
>
>
>
Okay...er der nogen der ved noget om hvordan man gør, eller ved hvor
man kan finde ud af det henne..>???

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Thomas Lindgaard (14-04-2005)
Kommentar
Fra : Thomas Lindgaard


Dato : 14-04-05 13:08

On Thu, 14 Apr 2005 09:02:36 +0000, Jakob Petersen wrote:

> Okay...er der nogen der ved noget om hvordan man gør, eller ved hvor
> man kan finde ud af det henne..>???

En simpel søgefunktion kan baseres på følgende tabeller:

page:
page_id int

word:
word_id int
word string

word_page:
word_id int
page_id int

Page-tabellen indeholder informationer om siden, f.eks. adresse, titel,
hvornår den er hentet, ...

Word-tabellen indeholder alle _unikke_ ord fundet i alle sider.

Word_page-tabellen afbilder ord over i de sider, hvori ordet forekommer.

Opbygningen af et indeks til din søgning består nu i følgende:

foreach ($URLs_to_index as $URL)
{
$page = file_get_contents($URL);
$page = removeHTML($page);
$words = splitPageIntoWords($page);

$page_id = insertPageIntoDatabase($page);
foreach ($words as $word)
{
$word_id = insertWordIntoDatabase($word);
mapWordToPage($word_id, $page_id);
}
}

Tanken er følgende:
1) Siden hentes fra nettet.
2) HTML fjernes så kun teksten står tilbage.
3) Teksten splittes op i enkelte ord, dvs. $words er et array af ord.
4) Information om siden indsættes i page-tabellen og det tilsvarende
page_id returneres.
5) Hvert ord indsættes i word-tabellen _hvis og kun hvis_ det ikke findes
der i forvejen - det tilsvarende word_id returneres.
6) Et par bestående af word_id og page_id indsættes i word_page.

Nu kan man så finde alle sider, som indeholder ordet 'prut':

$sql = "SELECT page.page_id
FROM word NATURAL JOIN word_page NATURAL JOIN page
WHERE word='prut'
";

.... og det var sådan set det (i lidt grove træk) :)

--
Mvh.
/Thomas


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste