Hallo zusammen.
Kurze Einleitung: Nachdem die zahlreichen Suchen noch Lösungen
(in Google, hier bei tutorials, Code-Scripting bei Suchmaschinen...)
zu keinem Ergebnis führten, hab' ich mir eins zusammengebastelt.
Ich benötige ein Suchscript, das den Ordner durchsucht, in dem das Script liegt.
Das klappt soweit schon ganz gut (wie man auf http://www.biblothek.de >> Bibelstellen
sieht - als Suche "johannes" eingeben). Doch sind noch einige Bugs drin...
Hier findet ihr die Ordnerstruktur des Ordners, in dem das Script liegt und der durchsucht werden soll:
Hier geht's zum Bild
Hier der PHP-Code der Suche:
Jetzt zu den Problemen:
(1) Als Link wird immer ein "index.php?id=" ausgegeben. Sowas hab ich aber nicht! Der Link müsste einfach nur im Format "johannes.html" lauten.
(2) Wird im Script keine Groß- und Kleinschreibung beachtet (siehe Suchergebnis). Kann man das einfügen?
(3) Die Zeichenlänge des Titels ist mir schleierhaft. Wenn man z.B. "johannes" sucht erscheint "johannes - leben und" anstatt des Titels "Johannes - Leben und Werk". Der Titel müsste einfach länger dargestellt werden können!
Ok, das war's erstmal ;-)
Bitte helft mir - denn jetzt (nachdem ich ja mal echt was gemacht hab) komm' ich nicht mehr weiter...
Liebe Grüße,
Claudi
Kurze Einleitung: Nachdem die zahlreichen Suchen noch Lösungen
(in Google, hier bei tutorials, Code-Scripting bei Suchmaschinen...)
zu keinem Ergebnis führten, hab' ich mir eins zusammengebastelt.
Ich benötige ein Suchscript, das den Ordner durchsucht, in dem das Script liegt.
Das klappt soweit schon ganz gut (wie man auf http://www.biblothek.de >> Bibelstellen
sieht - als Suche "johannes" eingeben). Doch sind noch einige Bugs drin...
Hier findet ihr die Ordnerstruktur des Ordners, in dem das Script liegt und der durchsucht werden soll:
Hier geht's zum Bild
Hier der PHP-Code der Suche:
PHP:
<?php
$dateityp = ".htm";
if(empty($search)) {$search=$_POST[search];}
if(strlen($search) < "4")
{echo "<body leftmargin=0 marginheight=3 marginwidth=0 topmargin=3><font face=Arial>Ihr Suchbegriff ist zu kurz! Bitte beachten Sie, <br> dass Ihr Suchbegriff mindesdens vier Buchstaben lang sein muss, <br> um von unserer Suche berücksichtigt zu werden.<br>Bitte versuchen Sie es nochmals!</font>";exit;}
$found = "0";
$verz = opendir('.');
while($file = readdir($verz))
{
if($file != "." && $file != ".." && !is_dir($file))
{
$filetype = stristr($file, $dateityp);
if(!empty($filetype))
{
$string = file_get_contents($file);
$string = html_entity_decode($string);
$string = strtolower($string);
$search = strtolower($search);
$test = substr_count($string, $search);
if(!empty($test))
{
$string = ereg_replace("\n", "", $string);
$string = strip_tags($string);
$pieces = explode($search, $string);
$piece1 = substr($pieces[0], -50);
$piece1 = explode(" ", $piece1);
array_shift($piece1);
$piece1 = implode(" ", $piece1);
$piece2 = substr($pieces[1], 0, 100);
$piece2 = explode(" ", $piece2);
array_pop($piece2);
$piece2 = implode(" ", $piece2);
$rest = "$piece1<b>$search</b>$piece2";
$array .= "<font face=Arial> $rest <br>Link: <a href=\"index.php?id=$file\" class=\"link\"> $file </a></font><br><br>\n";
$found ++;
}}}}
closedir($verz);
if($found != "0")
{
echo "<body leftmargin=0 marginheight=3 marginwidth=0 topmargin=3><font face=Arial>Ihre Suche ergab <strong>$found</strong> Treffer:</font><br><br>";
$array = explode("\n", $array);
natsort($array);
reset($array);
$array = array_reverse($array);
while(list($line_num, $line) = each($array))
{
$ausgabe .= "$line\n";
}
print $ausgabe;
}
if($found == "0")
{ echo "<body leftmargin=0 marginheight=3 marginwidth=0 topmargin=3><font face=Arial>Wir bitten vielmals um Entschuldigung, <br> aber es wurden keine Inhalte passend zu Ihren Eingaben gefunden. <br> Bitte versuchen Sie es nochmals!</font>";}
?>
Jetzt zu den Problemen:
(1) Als Link wird immer ein "index.php?id=" ausgegeben. Sowas hab ich aber nicht! Der Link müsste einfach nur im Format "johannes.html" lauten.
(2) Wird im Script keine Groß- und Kleinschreibung beachtet (siehe Suchergebnis). Kann man das einfügen?
(3) Die Zeichenlänge des Titels ist mir schleierhaft. Wenn man z.B. "johannes" sucht erscheint "johannes - leben und" anstatt des Titels "Johannes - Leben und Werk". Der Titel müsste einfach länger dargestellt werden können!
Ok, das war's erstmal ;-)
Bitte helft mir - denn jetzt (nachdem ich ja mal echt was gemacht hab) komm' ich nicht mehr weiter...
Liebe Grüße,
Claudi
Zuletzt bearbeitet: