Denkfehler?
ich
- php
hallo welt!
hab hier ein script gebastelt, welches als suchmaschine/Spider dienen soll...
es sollte zwar einwandfrei funktionieren, zumindest finde ich keinen fehler, aber irgendwas stimmt wohl noch nicht so ganz, denn das script liefert manche ergebnisse, die nicht stimmen und versäumt dafür sämtliche andre zu erwähnen...
hier das script:
<?
include("./config.php");
?>
<?
$suchwort=explode(" ",$query);
?>
<?
global $ergebnis;
function show_dir($dir, $suchwort)
{
$handle = @opendir($dir);
while ($file = @readdir ($handle))
{
if (eregi("^.{1,2}$",$file))
{
continue;
}
if(is_dir($dir.$file))
{
$ergebnis=array_merge($ergebnis, show_dir($dir.$file."/",$suchwort));
}
else
{
$datei_adresse="$dir$file";
//Suchfunktion:
$datei_=fopen("$datei_adresse","r");
//zu durchsuchende Datei einlesen
$datei_inhalt="";
while (!feof($datei_)) {
$zeile = fgets($datei_,500);
$datei_inhalt="$datei_inhalt$zeile";
}
fclose($datei_);
//alle Links entfernen(auto. Suche):
$plaincontent = preg_replace ('#<a.*>(.*)</a>#sUi','\1', $datei_inhalt);
//echo("<br><b>Inhalt von $dir$file im Textformat:</b><br><i>$plaincontent</i><br>");
$sucherfolg=1;
foreach($suchwort as $suchwort_einzeln)
{
$preg = $suchwort_einzeln;
if (preg_match("/$preg/i",$plaincontent))
{
}
else
{
$sucherfolg--;
}
}
if($sucherfolg==1)
{
$ergebnis[ ]="$dir$file";//echo("<i> ===> $dir$file</i>");
}
//echo("ok");
}
}
@closedir($handle);
return $ergebnis;
}
?>
<?
$ergebnis=show_dir("$such_ordner",$suchwort);
echo("<br><b>Suche nach '<i>$query</i>' ergab:</b><br>");
foreach($ergebnis as $ergebnis_einzeln)
{
$datei_=fopen("$ergebnis_einzeln","r");
//zu durchsuchende Datei einlesen
$datei_inhalt="";
while (!feof($datei_))
{
$zeile = fgets($datei_,500);
$datei_inhalt="$datei_inhalt$zeile";
}
fclose($datei_);
strip_tags($datei_inhalt);
echo "<br><a href='$ergebnis_einzeln'>$home_pfad$ergebnis_einzeln</a><br> <i>";
for($i=0; $i<=100 ;$i++){
echo($datei_inhalt[$i]);
}
echo("</i><br>");
}
?>
es durchsucht die ganzen ordner/untero. und entfernt links, da solche nicht geprüft werden sollen!
danach listet es die ganzen ergebnisse auf, inkl 100 buchstaben des inhaltes der jew. datei.
vielen dank für Eure hilfe
danke
Hallo ich,
denn das script liefert manche ergebnisse, die nicht stimmen und versäumt dafür sämtliche andre zu erwähnen...
Aufgrund dieser sehr guten Fehlerbeschreibung würde ich einmal sagen, du hast
in der Tat irgendwo einen Denkfehler drinne.
$handle = @opendir($dir);
while ($file = @readdir ($handle))
Sicher, dass diese dir keinen Fehler unterdrücken?
Grüße
David