Scriptsuche: Suchfunktion

Dynamo007

Grünschnabel
Hallo zusammen,


ich suche ein Script, für eine Suchfunktion.
Ich möchte gerne, aus einer .php oder auch .txt einen Namen und dazu gehörige Link aus geben

zb.

Wenn ich ein gebe "jQuery"

soll dann alles mit dem Namen und Link angezeigt werden..

jQuery
http://jquery.com/


Ich hoffe ihr wisst was ich meine^^

Danke im voraus :)

lg

Dynamo
 
Hey

also ich hab welche gefunden, aber die Funktionieren nicht ganz so wie ich das wollte...

ich suche keinen der's mir von vorne bis Hinten baut, sondern evtl gibt's ja welche die sowas schon haben oder ein Tutorial dazu gefunden haben!
 
Das ist doch schon einmal ein Wort.

Du müsstest dir erstmal klar werden, was du nun genau willst.
Im Prinzip ist jede Möglichkeit möglich.
Die Daten könnten als Ini-File, CSV, XML, einfache Textdatei usw. vorliegen.

Aber das musst du erstmal wissen oder uns zumindest paar Eckdaten geben.
z.B. Anzahl der Datensätze, ob du die Daten irgendwo geliefert bekommst oder frei bestimmen kannst, wie die Daten gespeichert werden.

Oder du zeigst uns mal eins von den nicht Funktionierenden Skripten.
 
Ok, also die Links und dazu hörige Namen sind in eine Txt datei. Später wollte ich noch ein Formular bauen, wo mann dann die neue Links und denn Namen mit eintragen kann.

Der Code geht soweit, aber er zeigt mir nicht denn ganzen Link alleine an mit denn Namen sondern nur ein aus zug

zb.

ich suche nach dem wort "jQuery"


1.
jQuery

http://jquery.com/
2.
jQuery Tutorial
http://www.w3schools.com/jquery/

Weisst du was ich meine?


Code:
<!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("&auml;"=>"ä", "&ouml;"=>"ö", "&uuml;"=>"ü", "&Auml;"=>"Ä", "&Ouml;"=>"Ö", "&Uuml;"=>"Ü", "&szlig;"=>"ß", "\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>[&hellip;]" .
        preg_replace('/(' . $_POST["suchbegriff"] . ')/i', "<acronym>$1</acronym>", (strlen($textteil) < $textausschnitt ? substr($text, strpos($text, $_POST["suchbegriff"]), $textausschnitt) : $textteil)) . '<br>';
        "[&hellip;]<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 &Uuml;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&ouml;tig!</p>";
}
}
?>

</body>
</html>
 
Ich konnte leider nix finden, wo ich mein letzten Beitrag bearbeiten kann?!

So, ich habe mal mein tolles Tool online gestellt :) http://myinsane.net/db/index.php

Leider wird es nicht so dargestellt, wie ich mir das gedacht habe :/

Jetzt habe ich auch ein beispiel was man sehen kann :)

9fbt3gdw.jpg


so sollte es eigentlich angezeigt werden, aber wenn ich jetzt mehrere Links und Namen hinzufüge, wird es mir so angezeigt.

vd6vz8sy.jpg


Leider musste ich was um ändern im Code, deswegen ist es nicht der gleiche wie oben zu sehen.

Code:
<!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(
"",
);

$dateiendungen = array(
".txt",
);

$nicht_durchsuchen = array(
"index.php",
"Linklist.php"
);
$suchbegriff_min = 2;
$anzahl_dateien = "nein";
$suchergebnisse_max = 50;
$speichern = "ja";
$suchdatei = "link.txt";
$autolink = "nein";
$exclude = array(
"Demotext",);
$textausschnitt = 50;
$url = "";

include('Linklist.php');

echo('<br><br><br>');

echo "<form method='post' action='" . $_SERVER["SCRIPT_NAME"] . "'>
<input type='text' name='suchbegriff' value='" .
(isset($_POST["suchbegriff"]) ? $_POST["suchbegriff"] : "") .
"' size='35' maxlength='60'>
<input type='submit' name='suche' value='suchen'>
</form><br>";

$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).'<br>';
      $titel = isset($t[1]) ? $t[1] : $dateiname;
      unset($t[1]); $dateinr++;
      $text = strtr(strip_tags($text), array("&auml;"=>"ä", "&ouml;"=>"ö", "&uuml;"=>"ü", "&Auml;"=>"Ä", "&Ouml;"=>"Ö", "&Uuml;"=>"Ü", "&szlig;"=>"ß", "\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 * 800 )));
       $ausgabe .= "<p>" . $gefunden . "<a href=\"" . $datei . "\">" . $titel  ."</a> <small>(" . substr_count(strtolower($text), strtolower($_POST["suchbegriff"])) . "x)</small><br><br><br>" .
        preg_replace('/(' . $_POST["suchbegriff"] . ')/i', "<acronym>$1</acronym>", (strlen($textteil) < $textausschnitt ? substr($text, strpos($text, $_POST["suchbegriff"]), $textausschnitt) : $textteil)) ;
        "<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 &Uuml;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 ($speichern == "nein") {
   $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&ouml;tig!dasd</p>";
}
}
?>

</body>
</html>


Ich habe alles noch mal in eine .rar Datei mit angehängt!
 

Anhänge

  • db.rar
    8 KB · Aufrufe: 4

Neue Beiträge

Zurück