Suchmaschinen Skript - Website X5 Helpsite

Logo Schriftzug
Logo WSX5
Newsletter anmelden
Scan QR or Download Android App

Besucher Statistik
» 1 Online
» 20 Heute
» 84 Gestern
» 104 Woche
» 2066 Monat
» 32622 Jahr
» 362396 Gesamt
Record: 5293 (16.04.2022)
Gesamt Downloads:
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
Downloads:
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.
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 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=""
placeholder="Suchbegriff eingeben (mind. 4 Zeichen)"' .
(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 "style.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 ""
{PC_LOAD}
Vielen Dank für Dein Feedback.
Logo Host Europe
Button Spenden

© 2009 - 2022

Hosting by
Zurück zum Seiteninhalt