<!DOCTYPE html>
<html>
<head>
<title>Suchmaschine</title>
<style type="text/css">
body {
font-family: Verdana, Arial, Sans-Serif;
font-size: 13px;
}
acronym {
background-color: #D5FFAA;
}
var {
color: #009B00;
font-size: 11px;
}
</style>
</head>
<body>
<?php
$verzeichnisse = array(
"lighter/",
);
$dateiendungen = array(
".txt",
);
$nicht_durchsuchen = array(
"index.php",
"login.htm",
);
$suchbegriff_min = 2;
$anzahl_dateien = "nein";
$suchergebnisse_max = 50;
$speichern = "nein";
$suchdatei = "suchbegriffe.txt"; // das hier ist die Link liste mit denn Links und Namen
$autolink = "nein";
$exclude = array(
"Demotext",);
$textausschnitt = 50;
$url = "";
echo "<form method='post' action='" . $_SERVER["SCRIPT_NAME"] . "'>
<input type='text' name='suchbegriff' value='" .
(isset($_POST["suchbegriff"]) ? $_POST["suchbegriff"] : "") .
"' size='35' maxlength='40'>
<input type='submit' name='suche' value='suchen'>
</form>";
$gefunden = $dateinr = 0; $ausgabe = $link = "";
$startzeit = microtime(true);
if (isset($_POST["suche"]) || isset($_POST["suchbegriff"])) {
$_POST["suchbegriff"] = (function_exists('str_ireplace') ? str_ireplace($exclude, "", $_POST["suchbegriff"]) : str_replace($exclude, "", $_POST["suchbegriff"]));
if (strlen(trim($_POST["suchbegriff"])) >= $suchbegriff_min) {
foreach ($verzeichnisse as $verzeichnis) {
foreach ($dateiendungen as $dateiendung) {
foreach (glob($verzeichnis . "*" . $dateiendung) as $datei) {
$dateiname = basename($datei);
if ($dateiname[1] != $vorzeichen && !in_array($dateiname, $nicht_durchsuchen)) {
$text = file_get_contents($datei);
preg_match("/<title>(.*?)</i", $text, $t);
$titel = isset($t[1]) ? $t[1] : $dateiname;
unset($t[1]); $dateinr++;
$text = strtr(strip_tags($text), array("ä"=>"ä", "ö"=>"ö", "ü"=>"ü", "Ä"=>"Ä", "Ö"=>"Ö", "Ü"=>"Ü", "ß"=>"ß", "\r" =>"", "\n" =>"", "\t" =>"", " " =>" "));
$_POST["suchbegriff"] = trim($_POST["suchbegriff"]);
if ((strstr($text, $_POST["suchbegriff"]) or stristr($text, $_POST["suchbegriff"]) or stristr($dateiname, $_POST["suchbegriff"])) && $gefunden <= $suchergebnisse_max) {
$gefunden++; $link = $datei;
$textteil = substr($text, (strpos($text, $_POST["suchbegriff"]) - $textausschnitt), (strlen($_POST["suchbegriff"]) + ($textausschnitt * 2)));
$ausgabe .= "<p>" . $gefunden . ". <a href=\"" . $datei . "\">" . $titel . "</a> <small>(" . substr_count(strtolower($text), strtolower($_POST["suchbegriff"])) . "x)</small><br>[…]" .
preg_replace('/(' . $_POST["suchbegriff"] . ')/i', "<acronym>$1</acronym>", (strlen($textteil) < $textausschnitt ? substr($text, strpos($text, $_POST["suchbegriff"]), $textausschnitt) : $textteil)) . '<br>';
"[…]<br><var>" . date("d.m.y h:i", filemtime($datei)) . " - " . filesize($datei) . " bytes - " . $url . $datei . "</var></p>";
}
}
}
}
}
if ($gefunden == 0) {
echo "<p>Es wurden keine Übereinstimmungen mit dem eingegebenen Suchbegriff gefunden.</p>";
}
else {
if ($autolink == "ja" && $gefunden == 1) {
echo "<script type='text/javascript'>location.href='" . $link . "';</script>";
}
echo "<p>Es " . ($gefunden == 1 ? "wurde ". $gefunden . " Datei" : "wurden " . $gefunden . " Dateien") . " gefunden:</p>" . $ausgabe;
}
if ($anzahl_dateien == "ja") {
printf("<p>Durchsuchte Verzeichnisse: " . count($verzeichnisse) . " - Dateien: " . $dateinr . " (in %.4f Sekunden)</p>", microtime(true) - $startzeit);
}
if ($speichern == "ja") {
$fp = fopen($suchdatei, "a+");
fputs($fp, date("d.m.y h:i") . "|" . $_POST["suchbegriff"] . "|" . $gefunden . "\n");
fclose($fp);
}
}
else {
echo "<p>Es sind mindestens " . $suchbegriff_min . " Zeichen nötig!</p>";
}
}
?>
</body>
</html>