webForumDet fria alternativet

Enkelt sökscript

5 svar · 302 visningar · startad av Fuel

FuelMedlem sedan okt. 20001 285 inlägg
#1

Någon som vet var jag kan hitta lite info om hur man ska göra för att koda ihop ett enkelt sökscript för en hemsida för att söka efter sidor med viss info.

Skulle vara kul att lära sig hur man gör en enkel indexering till en textfil eller mysql databas, och därefter en sökning i den.. ?

Tacksam för hjälp..

------------------
" The code is out there "

[Redigerat av Fuel den 26 maj 2001]

SPiNMedlem sedan mars 20007 896 inlägg
#2

Du får helt enkelt skapa ett script som öppnar alla filer, en efter en, på din wepplats och letar efter ord i den. Du skulle kunna göra det enklare för dig genom att sätta in t.ex. en "sökrad" i varje fil. Raden kan se ut nåt sånt här, med sökkriterier:
<!--\\ php, script, gratis //-->
Och sedan kan du enkelt kolla varje sidas sökkriterier genom att bara läsa av denna raden i varje fil.

Hoppas du hängde med i mitt resonemang, och ropa om du vill ha lite kådhjälp :)

------------------
SPiN, bjorne.w@telia.com

-- They pretend to pay me, I pretend to work --

FuelMedlem sedan okt. 20001 285 inlägg
#3

Jo.. det var ju som det jag var ute efter, info om var man kan hitta nån tut/kod om detta så man vet hur man ska göra för att som du säger leta igenom varje fil efter spec sökord. Så man kommer igång :)

jag tror att indexeringen är mer knepigt än själva sökandet databsen där indexeringen har sparats ?

det där med att öppna varje fil i ett dir som du var inne på, får du mer än gärna hjälpa mig på traven med.. :e

------------------
" The code is out there "

SPiNMedlem sedan mars 20007 896 inlägg
#4

Ok nåt liknande kanske :)

search.php::
------------
<?php
if($HTTP_POST_VARS[search] != "") {
    $cnt = 0;
    $kat = dir("din/katalog");
    while($cur = $kat->read()) {
        $fil = "din/katalog/" . $cur;
        if(is_file($fil)) {
            $oppen = file($fil);
            $sok = explode($oppen[0], "//");
            $sokord = explode(trim($sok[2]), ", ");
            for($i = 0; $i < count($sokord); $i++) {
                if($sokord[$i] == $HTTP_POST_VARS[search]) {
                    $result[$cnt] = $fil;
                    $cnt++;
                }
            }
        }
    }
    if($cnt > 0) {
        for($i = 0; $i < count($result); $i++)
            echo "<a href=\"" . $result[$i] . "\">" . $result[$i] . "</a><br>\n";
    else
        echo "Inga matchande filer";
}
else {
    ?>
<form action="search.php" method="POST">
<input type="text" name="search">
<input type="submit" value="Sök!">
</form>
    <?php
}
?>
------------
------------
enFil.html::
------------
<!--// bilar, ferrari, porsche //-->
<html>
...En hel sida som handlar om bilar, ferrarris och porschar...
</html>
------------

Puh.. OBS! Helt otestat, men nåt sånt borde funka tycker jag :)
Kanske är några småfel här o där, lite trött sen nattens bravader :l

------------------
SPiN, bjorne.w@telia.com

-- They pretend to pay me, I pretend to work --

FuelMedlem sedan okt. 20001 285 inlägg
#5

Ok.. hehe.. tungt i natt? :e

testade.. funkade inte, ändrade om lite.. funkar? - inga resultat iaf.

<form action="sok3.php" method="POST">
<input type="text" name="search">
<input type="submit" value="Sök!">
</form>

<?
if($HTTP_POST_VARS[search] != "") {
$cnt = 0;
$kat = dir(".");
while($cur = $kat->read()) {
$fil = "." . $cur;

if(is_file($fil)) {
$oppen = file($fil);
$sok = explode($oppen[0], "//");
$sokord = explode(trim($sok[2]), ", ");

for($i = 0; $i < count($sokord); $i++) {

if($sokord[$i] == $HTTP_POST_VARS[search]) {
$result[$cnt] = $fil;
$cnt++;
}
}
}
}
if($cnt > 0) {
for($i = 0; $i < count($result); $i++)
echo "<a href=\"" . $result[$i] . "\">" . $result[$i] . "</a><br>\n";

} else {

echo "Inga matchande filer";

}}
?>

du har ingen clue om hur man indexerar sajten till ex. en databas? då kan man göra själva sökningen enklare.. kanske :) jag vet inte så mycket om hur man ska gå tillväga.. :(

------------------
" The code is out there "

[Redigerat av Fuel den 27 maj 2001]

SPiNMedlem sedan mars 20007 896 inlägg
#6

Tungt i natt?

Njaa, snarare tungt så tidigt dagen efter som 14:30 :) På med brillorna för att dölja påsarna... :h ;)

OK, min kod nu då...
Får du något felmeddelande? Eller är det bara tomt?
Raden $fil = "." . $cur; ska nog också innehålla ett /. Alltså:
$fil = "./" . $cur;
Prova det :)

Indexering i en databas? Du skulle juh kunna lägga in hela filnamnet och sen en kolumn med sökord för den sidan.
När man sedan ska söka bland filerna använder du LIKE '%$sokord%' istället för = '$sokord' så får du matchande svar :)

Hoppas du hängde med i svängarna där... :)

------------------
SPiN, bjorne.w@telia.com

-- They pretend to pay me, I pretend to work --

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)