PHP - Den Inhalt aller Textdateien nach einem Suchbegriff durchsuchen

Den Inhalt aller Textdateien nach einem Suchbegriff durchsuchen und gefundene Dateien als Link ausgeben. Durchsucht werden alle Unterverzeichnisse.


<form action="" method="post">

    <label>Suche: <input type="search" name="text"></label>
    <button type="submit">&gt;&gt;</button>
</form>

<?php
/* Den Inhalt aller Textdateien nach einem Suchbegriff
   durchsuchen und gefundene Dateien als Link ausgeben.
   Durchsucht werden alle Unterverzeichnisse.
 */

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    
$verzeichnis "./../"// Verzeichnis angeben
    
$erg alle_dateien($verzeichnis$_POST["text"]);
    foreach (
$erg as $zaehler => $element) {
        
$element str_replace("\\"'/'$element);
        echo (
$zaehler 1) . '. <a href="' $element '">' $element '</a><br>';
    }
}

function 
alle_dateien($dir$text) {
    
$files = [];
    
$file_tmp glob($dir '*'GLOB_MARK GLOB_NOSORT);
    foreach (
$file_tmp as $item) {
        if (
substr($item, -1) != DIRECTORY_SEPARATOR) {

            
$temp explode('.'$item);
            
$type $temp[count($temp) - 1];

            if (
in_array($type, array("txt""htm""html""xml""csv""php""js"))) {
                
$inhalt file_get_contents($item);
                if (
stristr($inhalt$text)) {
                    
$files[] = $item;
                }
            }
        } else {
            
$files array_merge($filesalle_dateien($item$text));
        }
    }
    return 
$files;
}
?>

Siehe auch: Unterverzeichnisse nach einem Dateinamen durchsuchen, Dateien im Verzeichnis rekursiv auflisten, mit Filter, Suche nach Übereinstimmungen mit regulärem Ausdruck und Suchbegriffe hervorheben

Tipp

Kleine Suchmaschine - Diese Suchmaschine durchsucht das aktuelle Verzeichnis und/oder andere Verzeichnisse. Die Dateiendungen der Dateien die durchsucht werden sollen können angeben werden. Des weiteren ist es möglich ein Vorzeichen bei Dateien die nicht durchsucht werden sollen zu setzen und vieles mehr.

Bausteine  Alle Anzeigen

Eine zufällige Auswahl von Codeschnipseln aus den Bereichen HTML, CSS, PHP, JavaScript und MySQL.

<u> Unterstreichen (Physische Auszeichnung)

CSS - Wasserzeicheneffekt - Hintergrundbild fixieren

PHP - Verzeichnis als eine Auswahlliste mit Anfangsbuchstaben ausgeben

JavaScript - CSS über Javascript einbinden

MySQL - Datensatz Wert um 5% erhöhen

Deutsche Namen!
Vergeben Sie für die Links auf Ihrer Seite "Deutsche Namen". Nicht jeder kennt "Feedback", "Offline", "Bookmark", "Update" oder "Download".
Wussten Sie, dass die meisten deutschsprachigen Besucher einer Homepage die Linkbezeichnung "Startseite" bevorzugen, am häufigsten jedoch "Home" verwendet wird?