Suchmaschinen Skript - Website X5 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
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.
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 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 "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 ""

Unofficialwsx5

17.04.2012, 22:36

+0 -0  

Hab ihm schon geantwortet...

Lothar Fricke

17.04.2012, 10:38

+0 -0  

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


*** X5 ANSWER ***
Hallo Lothar, leider ist kein Link angekommen.
Bitte nochmals senden, Danke und Grüße
X5 Team

Bitte Dein Feedback

Du wirst als User bei Deinem ersten Kommentar automatisch registriert und musst dies noch bestätigen.
Erstellen Dir ein Konto, damit Deine Kommentare dann ohne Bestätigung veröffentlicht werden.

Login | Registrierung


            CAPTCHA
            Vielen Dank für Dein Feedback.
            Logo Host Europe
            Button Spenden

            © 2009 - 2020




            
            Besucher Statistik
            » 1 Online
            » 27 Heute
            » 105 Gestern
            » 963 Woche
            » 3635 Monat
            » 53938 Jahr
            » 278144 Gesamt
            Record: 1144 (01.02.2020)
            Gesamt Downloads:
            Hosting by
            Zurück zum Seiteninhalt