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.

<dt> Definitionsliste

CSS - Drehende E-Mail - Problem gelöst!

PHP - Unterverzeichnisse nach einem Dateinamen durchsuchen

JavaScript - Seite laden oder erneut laden

MySQL - Zufällige Datensätze auslesen