Avatar billede e100 Nybegynder
02. september 2003 - 19:01 Der er 11 kommentarer og
2 løsninger

fritekst søgning uden DB

Mojn,

Jeg har fundet et search script i php som jeg vil bruge på min hjemmeside. Scriptet skulle kunne søge i forskellige filtyper i undermapper mv., men jeg aner ikke hvordan jeg skal læse det... lidt assistance er velkommen. Det jeg skal vide er hvor jeg skal rette i scriptet så jeg får det til at søge i de rigtige undermapper, hvilke filtyper den kigger igennem.

<HTML><HEAD></HEAD><BODY BACKGROUND=background.gif>

<CENTER>


<BR>
<H1>Søge resultater</H1>
<HR>

<TABLE BORDER=0 width=95% spacing=0 CELLPADDING=0 CELLSPACING=0>
<TR><TD background=topbg.gif><BR></TD></TR>

<?Php
    error_reporting(0);
    $timex=time();
    $timey=0;
    $bgchange="FFFFFC";
    $fchek=0;
    $command[0]="0";
    $dirtest="false";


#subfolder search options setup starts here

if($where=="index"){
$dirtest="true";
$linkdir="";
$handle=opendir('.');

    } elseif($where=="php"){
    $linkdir="phpapps/";
    chdir('./phpapps');
    $handle=opendir('.');

        }elseif($where=="other"){
        $linkdir="otherscripts/";
        chdir('./otherscripts');
        $handle=opendir('.');

            }elseif($where=="news"){
            $linkdir="news/";
            chdir('./news');
            $handle=opendir('.');
} else {
    $dirtest="true";
    $linkdir="/ts_ny/profil/";
    $handle=opendir('.');
}


#thats it, nothing else should be changed do not edit below this line.




while (($file = readdir($handle))!==false){
    if (eregi("[a-zA-Z0-p_-]*.html",$file) or eregi("[a-zA-Z0-p_-]*.htm",$file)or eregi("[a-zA-Z0-p_-]*.php",$file)or eregi("[a-zA-Z0-p_-]*.txt",$file)){
        $fchek=$fchek+1;
        $sizer=filesize($file);
        $sizer=($sizer/1000);
        $sizer=round($sizer,1);
        $file=trim($file);
        $file=chop($file);
        $filed=file($file);
        $fileold=$file;
        $count = count($filed);
        $i = $count;
        $zt = 0;
        $clt=0;
        $found=0;
        $stringer=0;
            for($j=$zt;$j<$i;$j++){
                $string=$filed[$j];
                $stringer=$filed[$j];
                $num = "regPLACE hold";
                $string=strtolower($string);
                $stringer=strtolower($stringer);
                $whatdoreplace=strtolower($whatdoreplace);
                $string = ereg_replace($whatdoreplace, $num, $string);
                    if($string!=$stringer){
                    $found=$found+1;
                    $abby=$found;
                    $show[$found]=$stringer;
                    }
            }
        $dircount=count($file);
        echo "<FONT SIZE=-1>";
        if($found>0){
            $command[0]=($command[0]+10);
            if(eregi("[a-zA-Z0-p_-]*.txt",$file)){
                $fileold=$file;
                $file="index.php";
                if($dirtest=="true"){
                $file=$fileold;
            }

        }
        if($file=="index.html"){
            if($bgchange=="EEEEEE"){
            $bgchange="FFFFFF";
            echo "</TD></TR><TR><TD BGCOLOR=$bgchange><BR><A HREF=\"$linkdir$file\" target=_new><FONT SIZE=+2>$file</A><BR>$data</FONT> Size: $sizer Kb<BR><BR>This file containes <B><FONT COLOR=RED>$found</FONT></B> instances of <B><FONT COLOR=RED>$whatdoreplace</FONT></B> (shown below) <BR><UL>";
            } else {
                $bgchange="EEEEEE";
                echo "</TD></TR><TR><TD BGCOLOR=$bgchange><BR><A HREF=\"$linkdir$file\" target=_new><FONT SIZE=+2>$fileold</A> </FONT> Size: $sizer Kb<BR><BR>This file containes <B><FONT COLOR=RED>$found</FONT></B> instances of <B><FONT COLOR=RED>$whatdoreplace</FONT></B> (shown below) <BR><UL>";
                }
            } elseif($bgchange=="EEEEEE"){
            $bgchange="FFFFFF";
            echo "</TD></TR><TR><TD BGCOLOR=$bgchange><BR><A HREF=\"$linkdir$file\"><FONT SIZE=+2>$fileold</A></FONT> Size: $sizer Kb<BR><BR>This file containes <B><FONT COLOR=RED>$found</FONT></B> instances of <B><FONT COLOR=RED>$whatdoreplace</FONT></B> (shown below) <BR><UL>";
            } else {
                $bgchange="EEEEEE";
                echo "</TD></TR><TR><TD BGCOLOR=$bgchange><BR><A HREF=\"$linkdir$file\"><FONT SIZE=+2>$fileold</A></FONT> Size: $sizer Kb<BR><BR>This file containes <B><FONT COLOR=RED>$found</FONT></B> instances of <B><FONT COLOR=RED>$whatdoreplace</FONT></B> (shown below) <BR><UL>";
                }
            $file=$fileold;
            for($new=1;$new<=$found;$new++){
                $show[$new]=strip_tags($show[$new]);
                $show[$new] = ereg_replace($whatdoreplace,"<FONT COLOR=RED><B>$whatdoreplace</FONT></B>",$show[$new]);
                echo "<FONT SIZE=-1>";
                print "<LI>$show[$new]";
            }
            echo "</UL></FONT></TD></TR>";
        }

        }
}

if($command[0]==0){
    echo "<BR></TD></TR><TR><TD bgcolor=000000><CENTER><B><FONT SIZE=+2 COLOR=RED>No Results Found!";
}

echo "<BR></TD></TR><TR><TD BGCOLOR=AAAAFF><CENTER><FONT SIZE=-1>There where $fchek total file(s) searched which took ";
$timey=time();
$timea=($timey-$timex);
echo " $timea total seconds(s)";


?>
<TD/></TD></TR></TABLE><BR><CENTER><IMG SRC=sas.gif><TABLE>
<BR><BR><BR><BR><BR><BR>
<TABLE WIDTH=300><TR><TD><FONT SIZE=-3 COLOR=BLUE>
In case your interested, this search engine was written entirely by me, using the PhP 4 Scripting Languarge.  It uses nothing but itself, making it the easiest to setup and begin using for people who don't want to setup a database just to do searches.  Every site I checked said that PhP search engines do not work. But I don't listen very well.
</TD></TR></TABLE>
</HTML>
Avatar billede detox Nybegynder
02. september 2003 - 19:31 #1
Der må mangle noget, for '$whatdoreplace' bliver aldrig sat.
Avatar billede e100 Nybegynder
02. september 2003 - 19:33 #2
Den sætter jeg i en form på en anden side:

<form method="POST" action="/ts_ny/NEWSEARCH.php">
   
    Søg efter:
    <input type="text" name="whatdoreplace" size="25">
    <input type="submit" value="Search" name="B1">
</form>

/E100
Avatar billede e100 Nybegynder
02. september 2003 - 19:34 #3
Jeg kan umiddelbart godt få den til at søge, men den søger kun i den mappe som "NEWSEARCH.php" ligger i...! Jeg vil gerne selv definere hvilke mapper den skal søge i, eller bare få den til at tage undermapperne med.

/E100
Avatar billede mjl Nybegynder
02. september 2003 - 19:47 #4
Du skal skrive mappen her:

    } elseif($where=="php"){
    $linkdir="phpapps/";
    chdir('./phpapps');
    $handle=opendir('.');

...lav om til...

    } elseif($where=="php"){
    $linkdir="mappenavn/";
    chdir('./mappenavn);
    $handle=opendir('.');
Avatar billede mjl Nybegynder
02. september 2003 - 19:48 #5
Det er undermappen der sættes der - og i det efterfølgende!
Avatar billede e100 Nybegynder
02. september 2003 - 19:52 #6
hmmmmm....det har jeg ellers prøvet....

kan det være fordi min mappe hedder "ts_ny"  og php ikke er så vild med "_" ??

/E100
Avatar billede mjl Nybegynder
02. september 2003 - 19:54 #7
Måske - 2 sek.
Avatar billede mjl Nybegynder
02. september 2003 - 19:56 #8
Der står jo dette længere nede:

if (eregi("[a-zA-Z0-p_-]*.html",$file) ...men er ikke sikker på hvad "eregi" gør!
Avatar billede mjl Nybegynder
02. september 2003 - 19:58 #9
Min test var på en mappe uden underscore - og her virker det!!!
Avatar billede e100 Nybegynder
02. september 2003 - 21:01 #10
næææh.... kan stadig kun få den til at søge på folderen hvor "NEWSEARCH.php" ligger i....

/E100
Avatar billede e100 Nybegynder
03. september 2003 - 15:19 #11
Har jeg forstået scriptet forkert.... søges der kun i den undermappe som man har afkrydset i formularen og givet $where værdien "PHP" eller noget andet??!

/E100
Avatar billede e100 Nybegynder
11. september 2003 - 16:27 #12
Jeg har selv fundet ud af det med et andet script der hedder sitesearch.

Du får 20 point som tak for indsatsen.

/e100
Avatar billede mjl Nybegynder
11. september 2003 - 19:47 #13
Tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester