Suchmaschine - Website X5 Hilfe - Die Helpsite

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

Suchmaschine

Scripte > Attachment

Ein kleines Suchmaschinen-Script

Diese Suchmaschine durchsucht das aktuelle Verzeichnis und/oder andere Verzeichnisse.

- 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)

Dieses Scrpt durchsucht Verzeichnisse nach Begriffen (je nach Voreinstellung) und listet diese farblich gekennzeichnet auf. Es bietet diverse Möglichkeiten der Suchbegriff-Voreinstellung, somit auch einen Schutz für Verzeichnisse und Dateien die nicht durchsucht bzw. gefunden werden sollen.

Zum Einbau die ZIP-Datei laden und entpacken. Es liegt eine Datei "suchmaschinen.php" zum Test bei sowie auch Textdateien mit den entsprechenden Coden für den HEAD- und BODY-Bereich.  


Zum Testen bitte einen Suchbegriff (z.B. "such") in das Suchfeld eingeben:
Es wird nur nach herunterladbaren Dateien durchsucht.
(mindestens 4 Zeichen)

 

Code für den HEAD-Bereich:

[Vor dem /HEAD|Bereich CSS]

<style type="text/css">
mark { background-color: #D5FFAA; }
var
{ /* Datei-Info */ color: #00AF00; font-size: 11px; }
.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; }
.button { color: #7C6031; font-size: 12px; font-weight: bold; font-family: tahoma; background-color: #EEF6E8; border: 2px solid #7C6031; padding: 7px; border-radius: 5px; }
.button:hover { background-color: #B4DA9F; border: 2px solid #7C6031; padding-left: 15px; }
</style>

Code für das HTML-Objekt:

[Objekt HTML]

<a name="sprung">&nbsp;</a>

<?php
/* Die zu durchsuchenden Verzeichnisse eintragen.
Aktuelles Verzeichnis durchsuchen mit  "./"   */
$verzeichnisse = array(
"files/zip/",
"verzeichnis2/",
"verzeichnis3/",
);

/* Die Dateiendungen der Dateien die gefunden werden sollen. */
/* Dateiendungen mit Großbuchstaben müssen extra eingetragen werden! */
$dateiendungen = array(
".gif",
".htm",
".html",
".jpg",
".mp3",
".pdf",
".php",
".png",
".txt",
".zip",
);

/* Die Dateiendungen der Dateien die von der oberen Liste "keine" */
/* Textdateien sind (es wird nur der Dateiname angezeigt) */

$_dateiendungen = array(
".gif",
".jpg",
".mp3",
".pdf",
".png",
".zip",
);

/* Vorzeichen bei Dateien die nicht durchsucht werden */
/* sollen zum Beispiel: _intern.htm,  _log.php,  _data.txt */

$vorzeichen = "_";

/* Einzelne Dateien die nicht durchsucht werden sollen */
$nicht_durchsuchen = array(
"suchmaschine.php",
"login.php",
);

/* Länge des minimalen Suchbegriffs (min. 3 Zeichen) */
$suchbegriff_min = 3;

/* 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";

/* Name der Datei in der die Sucheingaben gespeichert werden */
$suchdatei = "suchfiles.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) Bsp.: www.example.com/ */
$url = "www.x5forum.home-wiekau.de";

// Zeitzone (siehe: http://de3.php.net/manual/de/timezones.europe.php)
date_default_timezone_set("Europe/Berlin");

// Ab hier nichts mehr ändern oder Du weißt was Du machst
echo '<form method=
"get" action="' . $_SERVER["SCRIPT_NAME"] . '#sprung">
<label>
<input class="searchfield" name="suchbegriff" value="' . (isset($_GET["suchbegriff"]) ? strip_tags($_GET["suchbegriff"]) : '') . '" size="35" maxlength="' . $suchbegriff_max . '" required="required">
</label>
<button class="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);

// Keine Übereinstimmungen gefunden
if ($gefunden == 0) {
 echo '
<p>Es wurden keine Übereinstimmungen mit dem eingegebenen Suchbegriff gefunden.</p>';
}
 else {
// Automatische Weiterleitung
 if ($autolink == "ja" && $gefunden == 1) {
  echo '
<script>location.href="' . $link . '";</script><noscript><meta http-equiv="refresh" content="0; URL=' . $link . '"></noscript>';
  }
// Ausgabe
  echo '
<p>Es ' . ($gefunden == 1 ? 'wurde '. $gefunden . ' Datei' : 'wurden ' . $gefunden . ' Dateien') . '    gefunden:</p>' .  '<ol>' . $ausgabe . '</ol>';
 }
// Datei-Info anzeigen
 if ($datei_info == "ja") {
  printf('
<p>Durchsuchte Verzeichnisse: ' . count($verzeichnisse) . ' - Dateien: ' . $dateinr . ' (in %.2f    Sekunden)</p>', microtime(true) - $startzeit);
 }
// Ergebnis der Suche speichern
 if ($speichern == "ja") {
  $fp = fopen($suchdatei, "a+");
  fputs($fp, date("d.m.y H:i") . '|' . $_GET["suchbegriff"] .  '|' . $gefunden . "\n");
  fclose($fp);
 }
}
// Länge des Suchbegriffs zu kurz/zu lang
else {
 echo '
<p>Es sind ' . (strlen($_GET["suchbegriff"]) < $suchbegriff_min ?
  'mindestens ' . $suchbegriff_min . ' Zeichen nötig' :
  'maximal ' . $suchbegriff_max . ' Zeichen erlaubt') . '!</p
>';
}
}
?>


Bitte beachten, dass die ausführbare Datei, die Dateiendung .php aufweisen muss.

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.
HTML5
Button Spenden

© 2009 - 2018





Besucher Statistik
» 4 Online
» 175 Heute
» 529 Gestern
» 175 Woche
» 7043 Monat
» 76864 Jahr
» 323442 Gesamt
Record: 1420 (10.04.2014)
Gesamt Downloads:
Zurück zum Seiteninhalt