Suchmaschinen Skript - Website X5 Hilfe - Die Helpsite

Logo Schriftzug
Logo WSX5
Newsletter anmelden
Scan QR or Download Android App
Direkt zum Seiteninhalt

Suchmaschinen Skript

Scripte > Attachment

Ein kleines Suchmaschinen-Script

Dieses Skript durchsucht das aktuelle Verzeichnis und/oder andere Verzeichnisse nach Begriffen (je nach Voreinstellung) und listet diese farblich gekennzeichnet auf. Es bietet diverse Möglichkeiten der Suchbegriff-Voreinstellung und bietet somit auch einen Schutz für Verzeichnisse und Dateien die nicht durchsucht bzw. gefunden werden sollen.
  • Gefundene Suchbegriffe werden farblich hervorgehoben.
  • Angabe der Verzeichnisse die durchsucht werden sollen.
  • Die Dateiendungen der Dateien die gefunden werden sollen können eingetragen werden.
  • Ein Vorzeichen bei Dateien definieren die nicht durchsucht werden sollen.
  • Es können auch einzelne Dateien von der Suche ausgeschlossen werden.
  • Angabe der Mindestlänge eines Suchbegriffs.
  • Die Länge des angezeigten Textausschnitts kann angepasst werden.
  • Anzeige des Dateinamens (oder HTML-Title-Tag wenn vorhanden), Suchtreffer.
  • Dateipfad, Dateigröße und letzte Aktualisierung der gefundenen Datei.
  • Suche nach Dateinamen und/oder Dateiendung (hilfreich für den Webmaster!).
  • Anzahl der durchsuchten Verzeichnisse und Dateien anzeigen (Optional).
  • Unerwünschte Sucheingaben von der Suche ausschließen.
  • Maximale Anzeige (Begrenzung) der Suchergebnisse.
  • Suchbegriffe können in einer Datei gespeichert werden (Optional).
  • Automatische Weiterleitung wenn nur eine Datei gefunden wurde (Optional).
  • Wörter die durch Zeilenumbrüche, Leerzeichen etc. getrennt sind werden gefunden.
  • Suche nach Bildern, PDF-Dateien, MP3-Dateien, Zip-Archive, … (Dateiname)
Download Button
x runter geladen!
ZIP-Datei in ein beliebiges Verzeichnis auf dem PC entpacken und das Verzeichnis "wsX5Obj" auf den Webserver in das Root-Verzeichnis kopieren. HEAD-Code in den HEAD-Bereich <head>.....</head> und HTML-Code in den BODY-Bereich <body>.....</body> der aufrufende Datei einfügen.
Eine demo.php ist beigefügt, die zum Test in das Root-Verzeichnis des Webservers kopiert werden kann.
Aufruf: "http://www.domain.tld/demo.php". Diese kann nicht lokal ausgeführt werden, d. h. diese muss zum Test auf den Server kopiert werden.
Achtung: Bei Einbindung per <?php include...?> muss die ausführende Datei die Dateiendung .php aufweisen.

Zum Testen bitte einen Suchbegriff (z.B. "popup") in das Suchfeld eingeben:
Es wird die gesamte Homepage durchsucht.

 
Code für den <HEAD> Bereich
<link type="text/css" rel="stylesheet" href="wsX5Obj/Obj73_0/style.css" />
Code für den <BODY> Bereich
<?php include "wsX5Obj/Obj73_0/search.php"; ?>

alternative Einbindung:
<a name="Obj73_Anker">&nbsp;</a>
<?php
  // Die zu durchsuchenden Verzeichnisse eintragen. Aktuelles Verzeichnis durchsuchen mit  "./"
$verzeichnisse = array(
"./",
);
  // Die Dateiendungen der Dateien die gefunden werden sollen.
  // Dateiendungen mit Großbuchstaben müssen extra eingetragen werden!
$dateiendungen = array(
".gif",
".htm",
".html",
".jpg",
".mp3",
".php",
".png",
".txt",
);
  // Die Dateiendungen der Dateien die von der oberen Liste "keine"
  // Textdateien sind (es wird nur der Dateiname angezeigt)
$_dateiendungen = array(
".gif",
".jpg",
".mp3",
".png",
);
  // Vorzeichen bei Dateien die nicht durchsucht werden
  // sollen zum Beispiel: _intern.htm,  _log.php,  _data.txt

$vorzeichen = array(
"_",
);
  // Einzelne Dateien die nicht durchsucht werden sollen
$nicht_durchsuchen = array(
"suchmaschine.php",
"login.php",
);
   // Länge des minimalen Suchbegriffs (min. 4 Zeichen)
$suchbegriff_min = 4;
  // Länge des maximalen Suchbegriffs
$suchbegriff_max = 50;
  // Anzahl der durchsuchten Verzeichnisse und Dateien anzeigen (ja/nein)
$datei_info = "ja";
  // Maximale Anzeige (Begrenzung) der Suchergebnisse
$suchergebnisse_max = 25;
  // Ergebnis der Suche speichern (ja/nein)
$speichern = "ja";
  // Pfad/Name der Datei in der die Sucheingaben gespeichert werden
$suchdatei = "wsX5Obj/Obj73_0/search.txt"; // Benötigt Schreibrechte!
  // Automatische Weiterleitung wenn nur eine Datei gefunden wurde (ja/nein)
$autolink = "nein";
  // Unerwünschte Sucheingaben von der Suche ausschließen
$ausschluss = array(
"Demotext",
"Demotext2",
);
  // Länge des angezeigten Textausschnitts (Zeichen)
$textausschnitt = 50;
  // META-Tags, wenn diese vorhanden sind, anzeigen (ja/nein)
$metatags = "nein";
  // URL (Optional)
$url = "http://x5forum.home-wiekau.de/";
  // Zeitzone (siehe: http://php.net/manual/de/timezones.europe.php)
date_default_timezone_set("Europe/Berlin");
  // Formular anzeigen
echo '<form method="get" action="' . $_SERVER["SCRIPT_NAME"] . '#Obj73_Anker">
       <label>
<input class="Obj73_searchfield" name="suchbegriff" value="mind. 4 Zeichen eingeben"' .
(isset($_GET["suchbegriff"]) ? strip_tags($_GET["suchbegriff"]) : '') .
'" size="35" maxlength="' . $suchbegriff_max . '" required="required">
       </label>
       <button class="Obj73_button" type="submit" name="suche">
           suchen
       </button>
</form>
       ';
$gefunden = $dateinr = 0; $link = ""; $ausgabe = array();
$startzeit = microtime(true);
if (isset($_GET["suche"]) || isset($_GET["suchbegriff"])) {
$_GET["suchbegriff"] = strip_tags($_GET["suchbegriff"]);
$_GET["suchbegriff"] = (function_exists('str_ireplace') ? str_ireplace($ausschluss, "", $_GET["suchbegriff"]) : str_replace($ausschluss, "", $_GET["suchbegriff"]));
if (strlen($_GET["suchbegriff"]) >= $suchbegriff_min && strlen($_GET["suchbegriff"]) <= $suchbegriff_max) {
foreach ($verzeichnisse as $verzeichnis) {
foreach ($dateiendungen as $dateiendung) {
foreach (glob($verzeichnis . "*" . $dateiendung) as $datei) {
$dateiname = basename($datei);
if ($dateiname[0] != $vorzeichen &&
!in_array($dateiname, $nicht_durchsuchen)) {
$text = (!in_array($dateiendung, $_dateiendungen)) ? file_get_contents($datei) : substr(strtoupper($dateiendung), 1) . '-Datei';
preg_match('/<title>(.*?)<\/title>/i', $text, $t);
$titel = isset($t[1]) ? $t[1] : $dateiname;
unset($t[1]);
$dateinr++;
$meta = ($metatags == "ja" && count(get_meta_tags($datei)) > 0) ? '<br>' . implode('<br>', get_meta_tags($datei)) : "";
$text = preg_replace('/\<head\>(.*)\<\/head\>/Usi', '', $text);
$text = strtr(strip_tags($text), array("&auml;"=>"ä", "&ouml;"=>"ö", "&uuml;"=>"ü", "&Auml;"=>"Ä", "&Ouml;"=>"Ö", "&Uuml;"=>"Ü", "&szlig;"=>"ß", "\r" =>" ", "\n" =>" ", "\t" =>" ", "  " =>" "));
$_GET["suchbegriff"] = trim($_GET["suchbegriff"]);
if ((strstr($text, $_GET["suchbegriff"]) or
stristr($text, $_GET["suchbegriff"]) or
stristr($dateiname, $_GET["suchbegriff"])) &&
$gefunden <= $suchergebnisse_max) {
$gefunden++;
$link = $datei;
$start = strpos(strtolower($text), strtolower($_GET["suchbegriff"])) - $textausschnitt;
if ($start < 0) $start = 0;
$ende = strlen($_GET["suchbegriff"]) + $textausschnitt *2;
$textteil = substr($text, $start, $ende);
$treffer = substr_count(strtolower($text), strtolower($_GET["suchbegriff"]));
$ausgabe[$treffer .  $gefunden] = '<li><a href="' . $datei . '">' . $titel . '</a> <small>(' .  
$treffer . 'x)</small>' . $meta . '<br>&hellip; ' . preg_replace('/(' . $_GET["suchbegriff"] . ')/i', "<mark>\$1</mark>", (strlen($textteil) < $textausschnitt ? substr($text, strpos($text, $_GET["suchbegriff"]), $textausschnitt) : $textteil)) . ' &hellip;<br><var>Stand: ' . date("d.m.y h:i", filemtime($datei)) . ' - ' . number_format((filesize($datei) / 1024), 1, ",", ".") . ' KB - ' . $url . $datei . '</var></li>';
                   }
               }
           }
       }
   }
   krsort($ausgabe);
   $ausgabe = implode($ausgabe);
   if ($gefunden == 0) {
       echo '<p>Es wurden keine Übereinstimmungen mit dem eingegebenen Suchbegriff gefunden.</p>';
   }
   else {
   if ($autolink == "ja" && $gefunden == 1) {
       echo '<script>location.href="' . $link . '";</script><noscript><meta http-equiv="refresh" content="0; URL=' . $link . '"></noscript>';
   }
   echo '<p>Es ' . ($gefunden == 1 ? 'wurde '. $gefunden . ' Datei' : 'wurden ' . $gefunden . ' Dateien') . ' gefunden:</p>' .
   '<ol>' . $ausgabe . '</ol>';
     }
   if ($datei_info == "ja") {
       printf('<p>Durchsuchte Verzeichnisse: ' . count($verzeichnisse) . ' - Dateien: ' . $dateinr . ' (in %.2f Sekunden)</p>', microtime(true) - $startzeit);
   }
   if ($speichern == "ja") {
       $fp = fopen($suchdatei, "a+");
       fputs($fp, date("d.m.y H:i") . '|' . $_GET["suchbegriff"] .  '|' . $gefunden . "\n");
       fclose($fp);
       }
   }
   else {
       echo '<p>Es sind ' . (strlen($_GET["suchbegriff"]) < $suchbegriff_min ?
       'mindestens ' . $suchbegriff_min . ' Zeichen nötig' :
       'maximal ' . $suchbegriff_max . ' Zeichen erlaubt') . '!</p>';
       }
   }
?>
Code Datei "texttime.css"
mark { background-color: #D5FFAA; }
var { color: #00AF00; font-size: 11px; }
.Obj73_searchfield {
background-color: #ffffff;
border: 2px solid #7C6031;
padding: 7px;
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
color: #000000;
font-weight: normal;
font-style: normal;
}
.Obj73_button {
color: #7C6031;
font-size: 12px;
font-weight: bold;
font-family: tahoma;
background-color: #EEF6E8;
border: 2px solid #7C6031;
padding: 7px;
border-radius: 5px;
}
.Obj73_button:hover { background-color: #B4DA9F; border: 2px solid #7C6031; padding-left: 15px; }
Feedbacks zu ""
1 Kommentar
Durchschnittliche Bewertung: 110.0/5
2018-11-13 08:29:34
Hallo Herr Zemke, ich würde gern Ihre Suchmaschine auf einer neu erstellten Website mit Website X5 hinterlegen. Leider habe ich erhebliche Probleme diese einzurichten. Vielleicht könnten Sie freundlicherweise einmal auf den u. a. Link dort dann die Suchmaschine klicken. Könnten Sie mir helfen? Viele Grüße Lothar Fricke
Vielen Dank für Dein Feedback.
Logo Host Europe
Button Spenden

© 2009 - 2019





Besucher Statistik
» 5 Online
» 191 Heute
» 389 Gestern
» 1605 Woche
» 3605 Monat
» 138522 Jahr
» 466278 Gesamt
Record: 2382 (29.03.2019)
Gesamt Downloads:
Hosting by
Zurück zum Seiteninhalt