Suchscript von Werner

PHP, CSS und JavaScript lernen. Anwendungen für Webseiten
schabau
Mitglied (Level 5)
Mitglied (Level 5)
Beiträge: 43
Registriert: Do 25. Aug 2022, 13:24
Wohnort: Cottbus
Kontaktdaten:

Suchscript von Werner

Ungelesener Beitrag von schabau »

Ich sage als ganz neu hier mal Hallo an alle,

dass es sehr schade ist, dass Werner seine Seite eingestellt hat, werden vermutlich viele so sehen. Zu ändern ist es wohl nicht. Wohl dem, der eine Sicherung aller wichtigen Daten hat und man sieht, so ganz unvergesslich (insbesondere bei kleinen privaten Seiten) ist das Internet dann doch nicht.

Ich hatte mit Werner hin und wieder Kontakt und ein paar meiner Vorschläge sind in seine Suchmaschine eingeflossen, andere nicht.
Mein Problem ist, dass ich kein Programmierer sondern viel mehr ein Techniker bin, und mir jede einzelne Codezeile mühevoll einzeln zusammensuchen muss.
Ich stelle hier trotzdem mal das Suchmaschinen-Script von Werner ein, so wie ich es für mich angepasst habe.

Zu den Veränderungen:
Titelzeile angepasst.
Style verwende ich eigentlich aus einer externen Datei. Für hier habe ich ihn noch mal eingefügt.
Die HTML-Anzeige und Eingabe habe ich ganz entfernt.
Verzeichnis(se) und Vorzeichen sind jetzt ein Array. Es lassen sich somit mehrere parallel liegende Verzeichnisse und unterschiedliche Vorzeichen angeben.
Bei "unerwünschten" Suchanfragen wird diese nicht nur verworfen, es erfolgt auch eine Information.
Bereich <title> aus dem Textausschnitt (nicht Suche) entfernen sonst gab es zwei mal den selben Text (Titel im Link und Titel im Textausschnitt) auf der Ergebnisseite, wenn das gesuchte Wort im Anfangsbereich der Seite steht.
Im Dateilink "./" bzw. "../" nicht anzeigen.
Auf der Ergebnisseite "Es wurden XX Dateien bei der Suche nach XXX gefunden." eingefügt. (Weil bei mir Sucheingabe und Ergebnis in verschiedenen iFrames liegt.)
Das Suchwort auch im Dateipfad markieren.
Dateidatum im 24-Stunden Format anzeigen.
Automatische Weiterleitung bei nur einem Suchergebnis, angepasst.
Ich hoffe, dass ich an alles gedacht habe.

Verbesserungen gern melden, besonders die Zeilen 360 bis 364 find ich doof, ich habe aber keinen besseren Weg (schon weiter oben bei RecursiveDirectoryIterator) gefunden.

Viele Grüße
Detlef Paschke

Code: Alles auswählen

<!DOCTYPE html>
<html lang="de">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0">
    <title>Seitenname - Suche nach <?=(isset($_GET["suchbegriff"]) ? '"' . htmlspecialchars($_GET["suchbegriff"], ENT_HTML5, 'UTF-8') . '"' : ''); ?></title>
   <!-- <link rel="stylesheet" href="./style.css" type="text/css"> -->

<style>
   body {
      font-family: Verdana, Arial, Tahoma, Sans-Serif;
      font-size: 0.90rem;
   }

  /* Textausschnitt */
  samp {
  font-family: inherit;
  font-style: Oblique;
  }

 /* Suchbegriff hervorheben */
  mark {
  background-color: #D5FFAA;
}

  /* Datei-Info */
  var {
  color: #00AF02;
  font-size: 0.7rem;
}

  /* Suchergebnisse (Nummerierte Liste) */
  li {
  margin-top: 20px;
}

  /* Meta-Tags */
  cite {
  font-family: inherit;
  font-size: 0.7rem;
  font-style: Normal;
}

  /* Eingabefeld */
  input[type="search"], 
  input[type="submit"] {
  font-family: inherit;
  font-size: 1.0rem;
  line-height: 1.0;
  border: 1px solid #7A7A7A;
  transition: box-shadow 0.3s;
}
  input[type="search"]:focus, 
  input[type="submit"]:focus {
  border:0; outline:0; /* Chromium */
  border: 1px solid #0078D7;
  box-shadow: 0px 0px 4px 0px #2284E6;
  line-height: 1.0;
}
</style>
  </head>
   <body>
    <aside>

   <?php
   /* Die zu durchsuchenden Verzeichnisse eintragen, ausgehend
      vom aktuellen Verzeichnis in dem diese Datei liegt.
      Untereinander liegende Verzeichnisse müssen nicht einzelnen
      aufgeführt werden. Bei parallel liegenden Verzeichnissen jeweils
      das oberste gewünschte Verzeichnis angeben.
      Aktuelles Verzeichnis durchsuchen mit "./"   */
$verzeichnisse = [
   //   "./",
      "./archiv",
];

   /* Dateiendungen der Dateien, die gesucht werden sollen. */
   $dateiendungen = [
      ".htm",
      ".html",
      ".php",
   //   ".txt",
   //   ".pdf",
   //   ".gif",
   //   ".jpg",
   //   ".png",
   ];

   /* Dateiendungen in der oberen Liste, die keine "Textdateien" sind.
      Auf der Ergebnisseite wird nur der Dateiname angezeigt. */
   $_dateiendungen = [
      ".pdf",
      ".gif",
      ".jpg",
      ".png",
   ];

   /* Vorzeichen bei Dateien die nicht durchsucht werden
      sollen z.B. _intern.htm oder .login.php (nur 1 Zeichen) */
   $vorzeichen = [
   //   ".",
   //   "_",
   ];

   /* Einzelne Dateien die nicht durchsucht werden sollen */
   $nicht_durchsuchen = [
   //   "privat.htm",
   //   "login.php",
   ];

   /* Länge des minimalen Suchbegriffs */
   $suchbegriff_min = 3; // 3

   /* Länge des maximalen Suchbegriffs */
   $suchbegriff_max = 100; // 100

   /* Maximale Anzeige (Begrenzung) der Ergebnisse */
   $suchergebnisse_max = 50; // 50

   /* Unerwünschte Eingaben von der Suche ausschließen */
   $ausschluss_eingaben = [
   //   "Demotext",
   //   "Demotext2",
   ];

   /* Automatische Weiterleitung wenn nur eine Datei
      gefunden wurde (ja/nein) */
   $auto_weiterleitung = "ja"; // ja

   /* Ziel in neuem Fenster/Tab öffnen.
      Mit _blank wird ein neuer Tab geöffnet, _self öffnet im selben Fenster/Tab.
      Möchte man unterschiedliche iFrame für Sucheingabe und Suchergebnis verwenden,
      kann "_top" oder "_parent" verwendet werden. */
   $target = "_self"; // leer oder _self

   /* Tipps anzeigen wenn nichts gefunden wurde (ja/nein) */
   $tipps_anzeigen = "ja"; // ja

   /* Die Ergebnisse nach der letzten Dateiänderung sortieren (ja/nein).
      Bei "nein" erfolgt die Sortierung nach der Anzahl der gefundenen Ergebnisse. */
   $sortierung_dateiaenderung = "nein"; // nein

   /* Ergebnis der Suche (Datum, Suchanfrage und Trefferzahl) speichern (ja/nein) */
   $sucheingabe_speichern = "nein"; // nein

   /* Name der Datei in der die Sucheingaben gespeichert werden.
      Diese Datei wird beim ersten Eintrag autom. erzeugt! */
   $suchdatei = "suchbegriffe.txt"; // suchbegriffe.txt

   /* Bereits eingetragene Sucheingaben als Auswahl im 
      Formularfeld anzeigen (ja/nein) 
      $sucheingabe_speichern muss auf "ja" stehen! */
   $datenliste_anzeigen = "nein"; // nein

   /* Datei-Info - Letzte Änderung und Dateigröße (ja/nein) */
   $datei_info = "ja"; // ja

   /* Pfad-Info - Pfad anzeigen (ja/nein) */
   $pfad_info = "ja"; // ja

   /* Status-Info - Anzahl der durchsuchten Verzeichnisse
      und Dateien anzeigen (ja/nein) */
   $status_info = "nein"; // nein

   /* Länge des angezeigten Textausschnitts */
   $textausschnitt = 150; // 150 Zeichen

   /* Treffer auf der gefundenen Seite hervorheben (ja/nein).
      Diese Funktion wird noch nicht von allen Browsern unterstützt! */
   $treffer_hervorheben = "ja"; // ja

   /* Folgende Zeichen, Wörter oder HTML-Attribute aus dem
      Textausschnitt ersetzen oder entfernen. */
   $entfernung_zeichen = [
   //   'Privat' => '',
   ];

   /* Inhalt entfernen der zwischen den folgenden HTML-Tags liegt.
      Dieser Inhalt wird nicht in der Suche berücksichtigt. */
   $entfernung_inhalt = [
      "h1", // <h1></h1>
      "h3", // <h3></h3>
      "nav", // <nav></nav>
   //   "head", // <head></head>
   //   "footer", // <footer></footer>
   ];

   /* Einen bestimmten HTML-Bereich für die Suche definieren
      z.B.: body, main oder article.
      Leer lassen wenn diese Option nicht verwendet werden soll. */
   $suche_in_bereich = "";

   /* META-Tags, wenn diese vorhanden sind, anzeigen (ja/nein).
      Z. B. der Inhalt vom 'content'-Attribut: <meta name="description" content="Beschreibung der Seite."> */
   $metatags_anzeigen = "nein"; // nein

   /* META-Tags in die Suche einschließen (ja/nein) */
   $metatags_durchsuchen = "nein"; // nein

   /* Diese META-Tags durchsuchen */
   $metatags_attribute = [
      "description",
   //   "keywords",
   //   "author",
   //   "date",
   ];

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

   /* PHP-Fehlermeldungen anzeigen (0/E_ALL) */
   error_reporting(0); // 0

   $datenliste = "";
   if (
      $sucheingabe_speichern == "ja" &&
      $datenliste_anzeigen == "ja" &&
      file_exists($suchdatei)
   ) {
      $datenliste = [];
      foreach (file($suchdatei, FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES) as $element) {
         list($datum, $begriff, $anzahl) = explode('|', $element);
         if ($anzahl > 0) {
            $datenliste[] = $begriff;
         }
      }
      sort($datenliste);
      $datenliste = '<datalist id="liste"><option>' . implode('<option>', array_unique($datenliste)) . '</datalist>';
   }

   // Formular anzeigen
   echo '<p>';
   echo '<form method="get" action="#Form" id="Form">
 <input type="search" name="suchbegriff" placeholder="Suchbegriff eingeben" value="' .
      (isset($_GET["suchbegriff"]) ? htmlspecialchars($_GET["suchbegriff"], ENT_HTML5, 'UTF-8') : '') .
      '" size="35" minlength="' . $suchbegriff_min . '" maxlength="' . $suchbegriff_max . '" list="liste" required="required" spellcheck="true">
 ' . $datenliste . '
 <input type="submit" name="suche" value="suchen">
</form>
';

   $suchergebnisse = [];
   $gefunden = 0;
   $anzahl_dateien = 0;
   $hyperlink = "";
   $directories = [];
   $filter = '/\.(?:' . str_replace(".", "", implode("|", $dateiendungen)) . ')$/i';
   $startzeit = microtime(true);
   $url = 'http' . (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == 'on' ? 's' : '') . '://' . $_SERVER["HTTP_HOST"] . dirname($_SERVER["SCRIPT_NAME"]);
   array_push($nicht_durchsuchen, basename($_SERVER["SCRIPT_NAME"]));

   if (
      isset($_GET["suche"]) ||
      isset($_GET["suchbegriff"])
   ) {
      $_GET["suchbegriff"] = rawurldecode($_GET["suchbegriff"]);
      $_GET["suchbegriff"] = str_replace([',', '.', ':', ';', '!', '?', '"', "'", "\t"], '', preg_replace('/\s\s+/', ' ', trim($_GET["suchbegriff"])));
         foreach ($ausschluss_eingaben as $ausschluss) {
            if (mb_strtolower($_GET["suchbegriff"]) == mb_strtolower($ausschluss)){
            echo '<p>Die Suchanfrage <i>' . $_GET["suchbegriff"] . '</i> ist unerwünscht und wird verworfen.</p>';
            $_GET["suchbegriff"] = trim(($_GET["suchbegriff"]), "\x00..\xFF");
            }
        }

      if (
         mb_strlen($_GET["suchbegriff"]) >= $suchbegriff_min &&
         mb_strlen($_GET["suchbegriff"]) <= $suchbegriff_max
      ) {

      foreach ($verzeichnisse as $verzeichnis) {
         $iterator = new RecursiveIteratorIterator(
            new RecursiveDirectoryIterator($verzeichnis)
         );
         $dateifilter = new RegexIterator($iterator, $filter);

         foreach ($dateifilter as $zeiger) {
            if ($zeiger->isFile()) {
               $datei = $zeiger->getPathname();
               $dateiname = $zeiger->getBasename();
               $dateiendung = '.' . $zeiger->getExtension();

               if (!in_array(dirname($zeiger->getPathname()), $directories)) {
                  $directories[] = dirname($zeiger->getPathname());
               }

               if (
                  !in_array(substr($dateiname, 0, 1), $vorzeichen) &&
                  !in_array($dateiname, $nicht_durchsuchen)
               ) {
                  $text = (!in_array($dateiendung, $_dateiendungen)) ? file_get_contents($datei) : mb_substr(strtoupper($dateiendung), 1) . '-Datei';
                  preg_match('/<title>(.*?)<\/title>/is', $text, $treffer);
                  $titel = isset($treffer[1]) ? $treffer[1] : $dateiname;
                  unset($treffer[1]);
                  $anzahl_dateien++;
                  $meta = ($metatags_anzeigen == "ja" && count(get_meta_tags($datei)) > 0) ? '<br><cite>&#10151; ' . implode(' &#10151; ', get_meta_tags($datei)) . '</cite>' : '';

                  if ($metatags_durchsuchen == "ja" && get_meta_tags($datei)) {
                     $metatag_array = get_meta_tags($datei);

                     foreach ($metatags_attribute as $attribut) {
                        if (isset($metatag_array[$attribut]))  $text .= ' [' . $attribut . ': ' . $metatag_array[$attribut] . ']';
                     }
                  }

                  $text = strtr($text, $entfernung_zeichen);

                  if (!empty($suche_in_bereich)) {
                     preg_match('/<' . $suche_in_bereich . '>(.*?)<\/' . $suche_in_bereich . '>/Usi', $text, $bereich);
                     $text = isset($bereich[1]) ? $bereich[1] : '';
                  }

                  foreach ($entfernung_inhalt as $htmltag) {
                     $text = preg_replace('/\<' . $htmltag . '\>(.*)\<\/' . $htmltag . '\>/Usi', '', $text);
                  }

                  // Bereich <title> im Textausschnitt (nicht in der Suche) entfernen um Doppelungen auf der Ergebnisseite zu vermeiden.
                  $textteil = preg_replace('/<title>(.*?)<\/title>/is', '', $text);
                  $textteil = strip_tags(html_entity_decode($textteil));

                  $text = strip_tags(html_entity_decode($text));
                  $preg = explode(" ", $_GET["suchbegriff"]);

                  if (strstr($_GET["suchbegriff"], "-")) $preg = explode("-", $_GET["suchbegriff"]);
                  $pregCount = count($preg);
                  $preg = implode(".*?|", $preg);

                  if ((mb_strstr($text, $_GET["suchbegriff"]) or
                        mb_stristr($text, $_GET["suchbegriff"]) or
                        mb_stristr($text, mb_strtolower($_GET["suchbegriff"])) or
                        mb_stristr($dateiname, $_GET["suchbegriff"]) or
                        preg_match("/" . $preg . "/is", $text)) &&
                     $gefunden <= $suchergebnisse_max
                  ) {
                     $gefunden++;
                     $hyperlink = $url . str_replace(['../', './'], '', $datei);
                     $start = mb_strpos(mb_strtolower($textteil), mb_strtolower($_GET["suchbegriff"])) - $textausschnitt;
                     if ($start < 0) $start = 0;
                      $ende = mb_strlen($_GET["suchbegriff"]) + $textausschnitt * 2;
                      $textteil = mb_substr($textteil, $start, $ende);
                      $textteil = (mb_strlen($texteil) > $textausschnitt ? mb_substr($textteil, mb_strpos($textteil, $_GET["suchbegriff"]), $textausschnitt) : $textteil);
                      $treffer = mb_substr_count(mb_strtolower($text), mb_strtolower($_GET["suchbegriff"]));
                      $worte = preg_split('/[\s]+/', $_GET["suchbegriff"]);

                     foreach ($worte as $wort) {
                      $textteil = preg_replace('/(' . $wort . ')/i', "<mark>$1</mark>", $textteil);
                      $titel = preg_replace('/(' . $wort . ')/i', "<mark>$1</mark>", $titel);
                      $hyperlink = preg_replace('/(' . $wort . ')/i', "<mark>$1</mark>", $hyperlink);
                     }

                     $suchergebnisse[($sortierung_dateiaenderung == "ja" ? date("Y-m-d H:i:s", filemtime($datei)) : sprintf("%02s", $treffer) . sprintf("%02s", $gefunden))] =
                        '<li><a href="' . $hyperlink . ($treffer_hervorheben == "ja" ? '#:~:text=' . $_GET["suchbegriff"] : '') . '" target="' . $target . '">' . $titel . '</a> <small>(' . ($treffer == 0 ? 1 : $treffer) . 'x)</small>' . $meta . '<br><samp>&hellip; ' . $textteil . ' &hellip;</samp>' .
                        ($datei_info == "ja" ? '<br><var>Erstellt: ' . date("d.m.Y H:i", filemtime($datei)) . ' - ' . number_format((filesize($datei) / 1024), 1, ",", ".") . ' KB' . ($pfad_info == "ja" ? ' - ' . $hyperlink : '') . '</var>' : '') .
                        '</li>';
                  }
               }
            }
         }
      }

         // Doppelungen in den Suchergebnissen entfernen. (Wenn fehlerhaft untereinander liegende Verzeichnisse angegeben werden.)
         $suchergebnisse = array_unique($suchergebnisse);
         if (count($suchergebnisse) != $gefunden){
             $gefunden = count($suchergebnisse);
         }

         // Ergebnisse nach Anzahl der Treffer oder der letzten Dateiänderung sortieren
         krsort($suchergebnisse);
         $suchergebnisse = implode($suchergebnisse);

         // Ergebnis der Suche speichern
         if ($sucheingabe_speichern == "ja") {
            $fh = fopen($suchdatei, "a+");
            fputs($fh, date("d.m.Y H:i") . '|' . htmlspecialchars($_GET["suchbegriff"], ENT_HTML5, 'UTF-8') .  '|' . $gefunden . "\n");
            fclose($fh);
         }

         // Keine oder nur eine Übereinstimmung gefunden
         if ($gefunden == 0) {
   echo '<p>Es wurden keine Übereinstimmungen bei der Suche nach <i>' . htmlspecialchars($_GET["suchbegriff"], ENT_HTML5, 'UTF-8') . '</i> gefunden.</p>';
            // Tipps anzeigen
            if ($tipps_anzeigen == "ja") {
               echo '<p>Tipp: Beachten Sie die Rechtschreibung';
               if (strtolower($_GET["suchbegriff"]) != $_GET["suchbegriff"]) {
                  echo ', verwenden Sie nur Kleinbuchstaben';
               }
               if (
                  isset($pregCount) &&
                  $pregCount > 1
               ) {
                  echo ' oder verwenden Sie einen einzelnen Suchbegriff';
               }
               echo '!</p>';
            }
         } else {
            // Automatische Weiterleitung bei einer Übereinstimmung
            if (
               $auto_weiterleitung == "ja" &&
               $gefunden == 1
            )
            {
               $meta_tags = get_meta_tags($hyperlink);
                  if (isset($meta_tags['description'])) {
                  $beschreibung = $meta_tags['description'];
                  }
               exit('<p>Es wurde '. $gefunden . ' Datei bei der Suche nach <i> ' . htmlspecialchars($_GET["suchbegriff"], ENT_HTML5, 'UTF-8') . '</i> gefunden.</p>
               <p>Die Datei wird in 5 Sekunden automatisch geladen...<br>
               <a href="' . $hyperlink . ($treffer_hervorheben == "ja" ? '#:~:text=' . $_GET["suchbegriff"] : '') . '" target="' . $target . '">' . $hyperlink . '</a><br><small><samp>&hellip; ' . $beschreibung . ' &hellip;</samp></small><meta http-equiv="refresh" content="5; URL=' . $hyperlink . ($treffer_hervorheben == "ja" ? '#:~:text=' . $_GET["suchbegriff"] : '') . '">');
            }

            // Ausgabe der Suchergebnisse
   echo '<p>Es ' . ($gefunden == 1 ? 'wurde '. $gefunden . ' Datei' : 'wurden ' . $gefunden . ' Dateien') . ' bei der Suche nach <i>' . htmlspecialchars($_GET["suchbegriff"], ENT_HTML5, 'UTF-8') . '</i> gefunden.</p>' . 
               '<ol>' . $suchergebnisse . '</ol>';
         }

         // Datei-Info anzeigen
         if ($status_info == "ja") {
            printf('<p>In %.2f Sekunden ' . (count($directories) == 1 ? 'wurde '. count($directories) . ' Verzeichnis mit ' : 'wurden ' . count($directories) . ' Verzeichnisse mit ') . $anzahl_dateien . ($anzahl_dateien == 1 ? ' Datei ' : ' Dateien ') . 'durchsucht.</p>', microtime(true) - $startzeit);
         }
      }

      // Länge des Suchbegriffs zu kurz/zu lang
      else {
         echo '<p>Es sind ' . (mb_strlen($_GET["suchbegriff"]) < $suchbegriff_min ?
            'mindestens ' . $suchbegriff_min . ' Zeichen nötig' :
            'maximal ' . $suchbegriff_max . ' Zeichen erlaubt') . '!</p>';
      }
   }
   ?>
    </aside>
   </body>
</html>
Das "Zitat des Augenblicks" gibt es nur auf
http://schabau.eu
Meine "Merkzettel"
http://helpdesk.schabau.eu
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5743
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Suchscript von Werner

Ungelesener Beitrag von Tommy Herrmann »

Hallo Detlef,

willkommen bei uns im Forum :hallo:

... und einer der helfen kann bei Werners Skripten :freude:

... es freut mich, nun den einen oder anderen Fan vom Werner hier begrüßen zu können und wenn das noch mehr wird, dann werden wir Werner schon bekehren :D

Er findet es natürlich toll, wenn andere an seinen Skripten basteln und dabei auch positive Ergebnisse erzielen :tu:

Ich habe mir das jetzt noch nicht genauer angeguckt, derweil ich gerade in der Küche stehe und koche :koch:
schabau
Mitglied (Level 5)
Mitglied (Level 5)
Beiträge: 43
Registriert: Do 25. Aug 2022, 13:24
Wohnort: Cottbus
Kontaktdaten:

Re: Suchscript von Werner

Ungelesener Beitrag von schabau »

Tommy Herrmann hat geschrieben: Do 25. Aug 2022, 16:04 Ich habe mir das jetzt noch nicht genauer angeguckt, derweil ich gerade in der Küche stehe und koche :koch:
Hallo,

mache mir gern was mit, ich esse meist gegen 18:00, 19:00 Uhr. :D

Viele Grüße
Detlef Paschke
Das "Zitat des Augenblicks" gibt es nur auf
http://schabau.eu
Meine "Merkzettel"
http://helpdesk.schabau.eu
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5743
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Suchscript von Werner

Ungelesener Beitrag von Tommy Herrmann »

Habe mal rein geguckt (zwischendurch) - Du hast da eine Menge geändert :eek:

Warte mal auf den Werner, vielleicht guckt er sich das ja auch an und hat einen Kommentar oder Tipp für Dich.

Werner ist allerdings nicht mehr unbedingt täglich hier.
Benutzeravatar
Werner-Zenk.de
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 755
Registriert: Di 8. Dez 2020, 19:42
Wohnort: Bamberg
Kontaktdaten:

Re: Suchscript von Werner

Ungelesener Beitrag von Werner-Zenk.de »

Hallo Detlef,
ich habe deine Änderungen noch nicht weiter im Detail angesehen nur so überflogen.
Man muss dieses Suchscript an seine eigene Website anpassen, wenn man da mehrere Vorzeichen für Dateien hat, dann ist das halt so das Skript wird dadurch nicht einfacher zu lesen. Bei manchen Funktionen, die ich da eingebaut habe, muss ich erst dreimal überlegen, ob das dann auch so funktionieren kann, den viele Funktionen sind voneinander abhängig. Wenn man da einen Fehler macht, funktioniert unter Umständen nichts mehr, obwohl dieses Script einmal für Anfänger in Sachen PHP konzipiert war.

Anstatt bei jeder Suchanfrage alle Dateien zu öffnen und zu durchsuchen, ist es besser und vor allem schneller die vorhandenen Dateien (einmalig) in eine Datenbank einzulesen (so wie ich das auf meiner Website gemacht hatte).
Dann dauert das keine 10 Sekunden (bei 800+ Dateien), sondern nur 0.4 Sekunden, das ist auf Ressourcen schonender für den Webserver.
schabau
Mitglied (Level 5)
Mitglied (Level 5)
Beiträge: 43
Registriert: Do 25. Aug 2022, 13:24
Wohnort: Cottbus
Kontaktdaten:

Re: Suchscript von Werner

Ungelesener Beitrag von schabau »

Werner-Zenk.de hat geschrieben: Do 25. Aug 2022, 17:56 Hallo Detlef,
...

Anstatt bei jeder Suchanfrage alle Dateien zu öffnen und zu durchsuchen, ist es besser und vor allem schneller die vorhandenen Dateien (einmalig) in eine Datenbank einzulesen (so wie ich das auf meiner Website gemacht hatte).
Dann dauert das keine 10 Sekunden (bei 800+ Dateien), sondern nur 0.4 Sekunden, das ist auf Ressourcen schonender für den Webserver.
Hallo Werner,

an der Stelle bin ich dann aber raus. Wie schon geschrieben (und Du von früheren Unterhaltungen sicher noch weißt), sammele ich jede Zeile Code mühsam zusammen. Und für jemanden wie mich, der eine Suchmaschine für seine kleine Webseite sucht aber nicht diese komische Google-Suche verwenden will, ist Dein Suchskript perfekt.
Bei mir, auf meinem eigenen lokalen Server, läuft die Suche dabei ausreichen schnell.
In 0.06 Sekunden wurden 5 Verzeichnisse mit 171 Dateien durchsucht.
Ich dachte, da Du deine Seite (leider) eingestellt hast und so wohl keine weiteren Veränderungen am Skript zu erwarten sind, zeige ich hier mal die Anpassungen (über die wir beide uns teilweise ausgetauscht hatten) die ich für mich am Skript gemacht habe. Der von mir angeregte Punkt "$suche_in_bereich" wurde von Dir ja z.B. noch eingebaut. Andere Punkte waren entweder nur für wenige wichtig oder ich hatte sie Dir noch nicht unterbreitet.

Nicht alles was ich gern wollte, ist mir so gelungen wie ich es gern gehabt hätte, aber das Skript funktioniert zuverlässig, so wie es ist.
Evtl. kann der Eine oder Andere die eine oder andere Codezeile gebrauchen.

Viele Grüße
Detlef Paschke

Ps. Schade um Deine Seite und die vielen verlorenen Tipps zu CSS, HTML, PHP... von denen sicher nicht nur ich profitiert habe. Findet sich nicht irgend ein kostenfreier (vermutlich Werbebelegter) Hoster, bei dem wenigstens der Endstand Deiner Seite weiterhin Online bleiben kann?
Das "Zitat des Augenblicks" gibt es nur auf
http://schabau.eu
Meine "Merkzettel"
http://helpdesk.schabau.eu
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5743
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Suchscript von Werner

Ungelesener Beitrag von Tommy Herrmann »

Moin,

bei mir werden sogar 832 Dateien in 60 Verzeichnissen in 0,4 Sekunden durchsucht.

https://www.mobirise-tutorials.com/Suchen.php

Ich fände das jetzt auch schwierig, wenn doch ständig Verzeichnisse und Seiten hinzukommen immer wieder das Skript ändern zu müssen. Ich glaube das wäre eine gute Idee, wenn man nur 1 Projekt hat - aber nicht wenn man Hunderte Projekte am Server hat - oder verstehe ich das falsch?


Kleine Suchmaschine.jpg


Im Hersteller-Forum gibt es den Drittanbieter "Witsec", der gerade eine Suchmaschine speziell für unsere Software "Mobirise" entwickelt hat (noch BETA), nur in JavaScript ohne PHP und die dann wohl die Inhalte der Seiten zunächst scannt, wohl in eine .json Datei, um diese dann zu durchsuchen. Das geht dann dort aber nur über das gleiche Projekt und innehalb von einem Verzeichnis.

Da ich, nach wie vor, sehr skeptisch bin solche Anwendungen in mein Mobirise einzulesen, habe und werde ich das nicht ausprobieren, zumal ich ja zwingend eine Suchmaschine über meine Verzeichnisse benötige. Das wird ja dann in die Software installiert und nicht nur in ein Projekt. Meine Angst, mir da etwas an der Software zu zerschießen ist zu groß, außerdem habe ich immer noch Copyright-Bedenken, wegen der Nutzung vorhandener Mobirise Werkzeuge.

Sicherlich ist das aber sehr gut programmiert.

Falls Werner oder Du Interesse haben, kann ich diese .mbrext Datei (Mobirise-Format zum Einlesen einer Erweiterung) in eine .zip Datei wandeln und ihr könnt da mal rein gucken. Ich kenne mich mit JavaScript leider viel zu wenig aus um das verstehen und beurteilen zu können.
schabau
Mitglied (Level 5)
Mitglied (Level 5)
Beiträge: 43
Registriert: Do 25. Aug 2022, 13:24
Wohnort: Cottbus
Kontaktdaten:

Re: Suchscript von Werner

Ungelesener Beitrag von schabau »

Tommy Herrmann hat geschrieben: Fr 26. Aug 2022, 04:18 Moin,

bei mir werden sogar 832 Dateien in 60 Verzeichnissen in 0,4 Sekunden durchsucht.

https://www.mobirise-tutorials.com/Suchen.php
Hallo Tommy,

schon so früh geschrieben oder noch so spät? ;)

Für kleine Seiten finde ich das Suchskript von Werner perfekt und schnell genug. Klein und einfach mit nur einer Datei, gut zu konfigurieren und es ist mit etwas Anstrengung auch für nicht PHP-Fachleute durchschaubar, an welcher Stelle was gemacht wird.
Im Hersteller-Forum gibt es den Drittanbieter "Witsec", der gerade eine Suchmaschine speziell für unsere Software "Mobirise" entwickelt hat (noch BETA), nur in JavaScript ohne PHP und die dann wohl die Inhalte der Seiten zunächst scannt, wohl in eine .json Datei, um diese dann zu durchsuchen. Das geht dann dort aber nur über das gleiche Projekt und innehalb von einem Verzeichnis.
Ich muss gestehen, dass ich in Wiki erst mal nachlesen musste, was Mobirise überhaupt ist. Aber so richtig weiß ich es immer noch nicht. Eigentlich wohl ein Webseiten-Baukasten, dann lese ich aber irgend wo etwas von Mobirise-Servern, also auch ein Hoster, oder wie oder was...??? Na egal.

Ich bastele meine Seiten für gewöhnlich mit Notepad++ und wenn ich mal ganz schnell ein Grundgerüst brauche, nehme ich BlueGriffon für die Vorarbeiten. Ist vermutlich nicht mehr modern oder altmodisch, aber ich komme zurecht.

Die Seiten liegen dann hier im Keller, auf meinem eigenen kleinen privaten Server über den ich allein die volle Kontrolle habe. (Solange ich mir die Stromrechnung leisten kann, muss man heute hinzufügen. :confused: )
Da ich, nach wie vor, sehr skeptisch bin solche Anwendungen in mein Mobirise einzulesen, habe und werde ich das nicht ausprobieren, zumal ich ja zwingend eine Suchmaschine über meine Verzeichnisse benötige. Das wird ja dann in die Software installiert und nicht nur in ein Projekt. Meine Angst, mir da etwas an der Software zu zerschießen ist zu groß, außerdem habe ich immer noch Copyright-Bedenken, wegen der Nutzung vorhandener Mobirise Werkzeuge.
Das sind dann solche Stellen, an denen ich gar nicht verstehe, was Mobirise überhaupt so richtig ist.
Dann kann es ja nicht nur ein Webseiten-Baukasten (html-Zusammenclick-Editor) sein.?
Falls Werner oder Du Interesse haben, kann ich diese .mbrext Datei (Mobirise-Format zum Einlesen einer Erweiterung) in eine .zip Datei wandeln und ihr könnt da mal rein gucken. Ich kenne mich mit JavaScript leider viel zu wenig aus um das verstehen und beurteilen zu können.
Bei JavaScript kenne ich mich gar nicht aus. Es gibt zwar Ähnlichkeiten im Syntax wenn man SH-Script, PHP und JavaScript vergleicht aber ich bin froh, dass ich mit meinen wenigen SH-Script Fähigkeiten noch weniger PHP Fähigkeiten erlangen konnte, um die für mich wichtigen Sachen wie die hier besprochene Suchmaschine von Werner, ein kleines einfaches Kontaktformular mit Spamschutz (nur mit mail() ohne PHPMailer) oder einen Sitemap-Generator an meine Bedürfnisse anzupassen oder selbst zu Bauen.
Mit JavaScript fange ich gar nicht an, weil ich es auch nicht einsetzen möchte.
Wenn man eine eigene Seite betreibt, gibt es genügend Variablen mit den verschiedensten Browsern, die man beim Erstellen überprüfen muss und in den letzten Jahrzehnten auch damit, ob die Seite auf mobilen Geräten richtig angezeigt wird. Baue ich JavaScript auf meiner Seite ein, brauche ich eine alternative für die, die JavaScript deaktiviert haben. Da bleibe ich lieber ausschließlich bei PHP, dass wird bei mir auf dem Server zusammengebaut.

Viele Grüße
Detlef Paschke
Das "Zitat des Augenblicks" gibt es nur auf
http://schabau.eu
Meine "Merkzettel"
http://helpdesk.schabau.eu
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5743
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Suchscript von Werner

Ungelesener Beitrag von Tommy Herrmann »

Moin Detlef,

nee - ich bin eher der Frühaufsteher und kann immer nur vormittags denken :D

Mobirise ist ein Webbaukasten der die HTML-Seiten beim Publizieren generiert.

Lies auch mal meine Einleitungsseite "Readme" zu diesem Forum:

app.php/Deutsch

Die Software "Mobirise" kann man kostenlos ausprobieren - um damit aber vernünftig arbeiten zu können, benötigt man zumindest deren "Code Editor" (auch um das Mobirise-Branding zu entfernen) mit dem man den HTML-Code editieren kann, z.B. um Werners PHP-Anwendungen einzubauen.

https://mobirise.com/history.html

Es gibt dann noch Hunderte von Erweiterungen / Blöcken, die man am besten als Komplett-Paket kauft (Lizenz im Angebot USD 99,00 pro Jahr).

Es gibt auch Drittanbieter, die als Hobby auch noch solche Erweiterungen anbieten, manche bieten auch welche, meist vollkommen überflüssige und überteuerte, zum Kauf an. Diese verwende ich persönlich allerdings bisher gar nicht.

Ich habe dagegen in Mobirise und damals eben auch schon in NOF, mit meiner riesigen Seite NOF-Tutorials.com, so ungefähr alle Skripte vom Werner eingebaut und dazu meist Anleitungen geschrieben.

Dieses Forum dreht sich nun hauptsächlich um diese Software "Mobirise".

Ich habe dieses Forum erst vor knapp 2 Jahren gegründet (12/2020), da die Inhaberin (Babs) von unserem alten Forum der "NOF-Schule.de" keine Zeit und Lust mehr hatte. Früher haben wir ausschließlich die Software "NetObjects Fusion" (NOF) im alten Forum supportet - dann eben als Ersatz "Mobirise" (das es seit dem Jahr 2015 gibt), da auch NOF eingestellt wurde.

Hier ist eines meiner ca. 80 Projekte zu Mobirise:

https://www.mobirise-tutorials.com/

Es ist natürlich ungleich schneller und einfacher als Gerüst für eine Webseite so eine Software zu verwenden als das alles nur mit einem Editor zu erstellen.
schabau
Mitglied (Level 5)
Mitglied (Level 5)
Beiträge: 43
Registriert: Do 25. Aug 2022, 13:24
Wohnort: Cottbus
Kontaktdaten:

Re: Suchscript von Werner

Ungelesener Beitrag von schabau »

Tommy Herrmann hat geschrieben: Fr 26. Aug 2022, 12:11 Moin Detlef,

Die Software "Mobirise" kann man kostenlos ausprobieren - um damit aber vernünftig arbeiten zu können, benötigt man zumindest deren "Code Editor" (auch um das Mobirise-Branding zu entfernen) mit dem man den HTML-Code editieren kann, z.B. um Werners PHP-Anwendungen einzubauen.
Hallo Tommy,

das verstehe ich noch gar nicht so recht, denn Mobirise sollte ja wie jeder andere WYSIWIG-Editor, ganz normale html-Dateien erstellen, die ich mit jedem Texteditor bearbeiten kann.
Es ist natürlich ungleich schneller und einfacher als Gerüst für eine Webseite so eine Software zu verwenden als das alles nur mit einem Editor zu erstellen.
Das ist richtig, nur leider gibt es die wirklich reinen WYSIWIG-HTML-Editoren nahezu nicht mehr. Zumindest kenne ich keinen, der noch weiter entwickelt wird.

Ich bin ein großer Freund von Dual-View, also Code auf einem Teil des Fenster, WYSIWIG auf dem anderen, um schnell Codezeilen einfügen zu können, die im Programm nicht implementiert sind. Da bleibt nur noch BlueGriffon, welches aber auch schon lange nicht mehr supported wird.
Ich glaube, NOF habe ich mir mal angesehen und vor vielen vielen Jahren auch FrontPage.
Ich werde mir Mobirise bei Gelegenheit mal anschauen. Spätestens die Wintermonate bieten sich an.:schnee:

Viele Grüße
Detlef Paschke
Das "Zitat des Augenblicks" gibt es nur auf
http://schabau.eu
Meine "Merkzettel"
http://helpdesk.schabau.eu
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5743
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Suchscript von Werner

Ungelesener Beitrag von Tommy Herrmann »

Das ist deswegen, weil man den Code eben nicht in die fertig generierten Seiten einfügt, sondern bereits auf der Arbeitsseite von Mobirise. Dieser (Dein) Code wird dann mit in einer Projekt-Datei gespeichert, sodass dieser auch beim erneuten Öffnen oder bei einem Backup noch und wieder vorhanden ist. Man will ja solch einen eigenen Code nicht erneut und immer wieder einfügen müssen.

Von nachträglichen Änderungen im HTML "weiß" ja Mobirise sonst nichts.

Man sollte also niemals bei solchen Generatoren irgend etwas nachträglich "händisch" ändern, denn sonst ist es nicht gespeichert.

Das ist ja wie bei einem CMS, dort werden diese Sachen in Datenbanken hinterlegt. Da würde man ja auch die fertigen Seiten nicht händisch ändern.

Mobirise kann übrigens auch online - wie ein CMS - editiert werden. Das ist aber noch nicht fertig und im BETA.

Beispiel einer meiner online erstellten Mobirise-Seiten:

https://online.mobirise-tutorials.com/


Ich glaube schon, dass man Mobirise als WYSIWIG-Editor bezeichnen kann - wenn man einen Generator überhaupt als "Editor" bezeichnen wollte. Mobirise entwickelt monatlich ca. 3-5 neue Erweiterungen und Templates, die dann immer schon im Paket-Preis inbegriffen sind.

Bis Version 4 war das übrigens eine lebenslange Lizenz, d.h. einmal gekaufte Erweiterungen konnten (ohne Updates) dann immer weiter verwendet werden. Ich weiß nicht, ob das noch mit Version 4 so ist, die man hier downloaden kann:

https://mobirise.com/historyv4.html

... könnte man sicher beim Support erfragen:

support@mobirise.com

Bei Version 4 war eigentlich nicht viel anders, nur gab es weniger Bugs :D
Benutzeravatar
Werner-Zenk.de
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 755
Registriert: Di 8. Dez 2020, 19:42
Wohnort: Bamberg
Kontaktdaten:

Re: Suchscript von Werner

Ungelesener Beitrag von Werner-Zenk.de »

Moin,
leider wurde dieser sehr wichtige Codeblock aus dem Skript entfernt!

Code: Alles auswählen

$text = strtr($text, [
                     "&auml;" => "ä", "&ouml;" => "ö", "&uuml;" => "ü", "&Auml;" => "Ä", "&Ouml;" => "Ö", "&Uuml;" => "Ü", "&szlig;" => "ß",
                     "\r" => " ", "\n" => " ", "\t" => " ", "   " => " ", "  " => " "
                  ]);
Screenshot 2022-08-27 143623.png
schabau
Mitglied (Level 5)
Mitglied (Level 5)
Beiträge: 43
Registriert: Do 25. Aug 2022, 13:24
Wohnort: Cottbus
Kontaktdaten:

Re: Suchscript von Werner

Ungelesener Beitrag von schabau »

Werner-Zenk.de hat geschrieben: Sa 27. Aug 2022, 14:34 Moin,
leider wurde dieser sehr wichtige Codeblock aus dem Skript entfernt!

Code: Alles auswählen

$text = strtr($text, [
                     "&auml;" => "ä", "&ouml;" => "ö", "&uuml;" => "ü", "&Auml;" => "Ä", "&Ouml;" => "Ö", "&Uuml;" => "Ü", "&szlig;" => "ß",
                     "\r" => " ", "\n" => " ", "\t" => " ", "   " => " ", "  " => " "
                  ]);
Screenshot 2022-08-27 143623.png
Hallo Werner,

stimmt, da habe ich eine Zeile zu viel gelöscht, als ich den html-Teil entfernt habe.

Viele Grüße
Detlef Paschke
Das "Zitat des Augenblicks" gibt es nur auf
http://schabau.eu
Meine "Merkzettel"
http://helpdesk.schabau.eu
schabau
Mitglied (Level 5)
Mitglied (Level 5)
Beiträge: 43
Registriert: Do 25. Aug 2022, 13:24
Wohnort: Cottbus
Kontaktdaten:

Re: Suchscript von Werner

Ungelesener Beitrag von schabau »

schabau hat geschrieben: Sa 27. Aug 2022, 14:44
Werner-Zenk.de hat geschrieben: Sa 27. Aug 2022, 14:34 Moin,
leider wurde dieser sehr wichtige Codeblock aus dem Skript entfernt!

Code: Alles auswählen

$text = strtr($text, [
                     "&auml;" => "ä", "&ouml;" => "ö", "&uuml;" => "ü", "&Auml;" => "Ä", "&Ouml;" => "Ö", "&Uuml;" => "Ü", "&szlig;" => "ß",
                     "\r" => " ", "\n" => " ", "\t" => " ", "   " => " ", "  " => " "
                  ]);
Screenshot 2022-08-27 143623.png
Hallo Werner,

stimmt, da habe ich eine Zeile zu viel gelöscht, als ich den html-Teil entfernt habe.

Viele Grüße
Detlef Paschke
nein Moment mal, $text = strip_tags(html_entity_decode($text)); macht doch genau das selbe.

Ich hatte das anstelle der langen Zeile genommen.

Viele Grüße
Detlef Paschke
Das "Zitat des Augenblicks" gibt es nur auf
http://schabau.eu
Meine "Merkzettel"
http://helpdesk.schabau.eu
Benutzeravatar
Werner-Zenk.de
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 755
Registriert: Di 8. Dez 2020, 19:42
Wohnort: Bamberg
Kontaktdaten:

Re: Suchscript von Werner

Ungelesener Beitrag von Werner-Zenk.de »

nein Moment mal, $text = strip_tags(html_entity_decode($text)); macht doch genau das selbe.
Nicht ganz, da werden auch Zeilenumbrüche, Tabs und doppelte Leerzeichen ersetzt. Es kann mal vorkommen das die Suchbegriffe durch einen Zeilenumbruch etc. voneinander getrennt sind.
schabau
Mitglied (Level 5)
Mitglied (Level 5)
Beiträge: 43
Registriert: Do 25. Aug 2022, 13:24
Wohnort: Cottbus
Kontaktdaten:

Re: Suchscript von Werner

Ungelesener Beitrag von schabau »

Werner-Zenk.de hat geschrieben: Sa 27. Aug 2022, 14:57
nein Moment mal, $text = strip_tags(html_entity_decode($text)); macht doch genau das selbe.
Nicht ganz, da werden auch Zeilenumbrüche, Tabs und doppelte Leerzeichen ersetzt. Es kann mal vorkommen das die Suchbegriffe durch einen Zeilenumbruch etc. voneinander getrennt sind.
Ich erinnere mich. Das hatte ich bewusst so gelassen, weil die Suche Freizeichen und Tabs gar nicht berücksichtigt hat (bzw. auch jetzt nicht macht).
Tippe ich als Suchwort "linux console" ein, wird alles gelistet in dem "linux console" steht, aber auch alles mit "linux" oder "console". Die Suche nach "mbr" listet z.B. auch "Zeilenumbruch", wobei der Ausschnitt "mbr" auf der Ergebnisseite aber natürlich markiert ist.

Von daher dachte ich, der reine Text der am Ende von html_entity_decode raus kommt, sollte für mb_strstr und preg_match bei der Suche genügen.

Viele Grüße
Detlef Paschke
Das "Zitat des Augenblicks" gibt es nur auf
http://schabau.eu
Meine "Merkzettel"
http://helpdesk.schabau.eu
schabau
Mitglied (Level 5)
Mitglied (Level 5)
Beiträge: 43
Registriert: Do 25. Aug 2022, 13:24
Wohnort: Cottbus
Kontaktdaten:

Re: Suchscript von Werner

Ungelesener Beitrag von schabau »

schabau hat geschrieben: Sa 27. Aug 2022, 15:29 Tippe ich als Suchwort "linux console" ein, wird alles gelistet in dem "linux console" steht, aber auch alles mit "linux" oder "console".
Beim Suchbegriff "linux console" (mit zwei Leerzeichen dazwischen) ist das Ergebnis identisch.

Ich nehme aber jeden Tipp dankbar entgegen. Wie schon geschrieben, ich bin ein armseliger Skript Sammler und Suche mir jedem einzelnen Aufruf, mühsam bei php.net zusammen.

Viele Grüße
Detlef Paschke
Das "Zitat des Augenblicks" gibt es nur auf
http://schabau.eu
Meine "Merkzettel"
http://helpdesk.schabau.eu
Benutzeravatar
Werner-Zenk.de
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 755
Registriert: Di 8. Dez 2020, 19:42
Wohnort: Bamberg
Kontaktdaten:

Re: Suchscript von Werner

Ungelesener Beitrag von Werner-Zenk.de »

Zwischen beiden Suchbegriffen kann auch ein Tabulator oder Zeilenumbruch sein, dann wird zwar etwas gefunden, jedoch werden die Begriffe im Text nicht hervorgehoben.
schabau
Mitglied (Level 5)
Mitglied (Level 5)
Beiträge: 43
Registriert: Do 25. Aug 2022, 13:24
Wohnort: Cottbus
Kontaktdaten:

Re: Suchscript von Werner

Ungelesener Beitrag von schabau »

Werner-Zenk.de hat geschrieben: Sa 27. Aug 2022, 16:16 Zwischen beiden Suchbegriffen kann auch ein Tabulator oder Zeilenumbruch sein, dann wird zwar etwas gefunden, jedoch werden die Begriffe im Text nicht hervorgehoben.
Das verstehe ich jetzt gerade nicht.

Ich habe mal eine schnelle Seite erstellt.

Code: Alles auswählen

    <article>
      <h3>Überschrift</h3>
      <p>Dieser Text hat einen Tab. Wort1	Wort2</p>
      <p>Dieser Text hat einen Umbruch. Wort3<br>Wort4</p>
    </article>
Gebe ich in der Suche nun wort1 wort2 oder wort3 wort4 ein, wird genau diese Seite (aa.html) gefunden und die Suchergebnisse markiert.
Kannst Du gern Testen. https://helpdesk.schabau.eu/
Das "Zitat des Augenblicks" gibt es nur auf
http://schabau.eu
Meine "Merkzettel"
http://helpdesk.schabau.eu
schabau
Mitglied (Level 5)
Mitglied (Level 5)
Beiträge: 43
Registriert: Do 25. Aug 2022, 13:24
Wohnort: Cottbus
Kontaktdaten:

Re: Suchscript von Werner

Ungelesener Beitrag von schabau »

schabau hat geschrieben: Sa 27. Aug 2022, 16:46
Werner-Zenk.de hat geschrieben: Sa 27. Aug 2022, 16:16 Zwischen beiden Suchbegriffen kann auch ein Tabulator oder Zeilenumbruch sein, dann wird zwar etwas gefunden, jedoch werden die Begriffe im Text nicht hervorgehoben.
Das verstehe ich jetzt gerade nicht.

Ich habe mal eine schnelle Seite erstellt.

Code: Alles auswählen

    <article>
      <h3>Überschrift</h3>
      <p>Dieser Text hat einen Tab. Wort1	Wort2</p>
      <p>Dieser Text hat einen Umbruch. Wort3<br>Wort4</p>
    </article>
Gebe ich in der Suche nun wort1 wort2 oder wort3 wort4 ein, wird genau diese Seite (aa.html) gefunden und die Suchergebnisse markiert.
Kannst Du gern Testen. https://helpdesk.schabau.eu/
Habe ich noch mal geändert, nicht Umbruch <br> sondern Umbruch mit Enter. Ergebnis unverändert
Das "Zitat des Augenblicks" gibt es nur auf
http://schabau.eu
Meine "Merkzettel"
http://helpdesk.schabau.eu
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 17 Gäste