Pberndt V4

Direkt zum Inhalt springen


Quellcode In Dateien suchen.php

Beschreibung

Eine simple Suche ohne Cache. Für kleinere Seiten in dieser Form geeignet, größere Seiten sollten Ergebnisse auf jeden Fall zwischenspeichern oder einen Index anlegen.

Sourcecode

<?php
    /*
        Eine simple Suche über HTML-Dateien
        Nur für PHP5

        Aktion: PHP Scripte für die armen dieser Welt
        Der Erlös geht für mein Pausenbrot drauf

        Copyright (c) 2006 by Phillip 'Firebird' Berndt
    */

   
?>
<h1>Suchen</h1>
<form method="get">
<p>
    <label>Suchen nach <input name="q" value="<?=htmlspecialchars($_GET['q'])?>"/></label>
    <input type="submit" />
</p>
</form>
<?php
    if(!$_GET['q'])
        die();   
?>
<h2>Suchergebnisse</h2>
<ul>
<?php
    // Die Suche arbeitet über Verzeichnisse rekursiv, daher muss sie
    // in einer Funktion liegen
    function search($dir)
    {
        // Verzeichnis lesen
        $odir = new DirectoryIterator($dir);
        while($odir->valid())
        {       
            // Dateien mit einem . (In Linux versteckte Dateien) übergehen
            if($odir->isDot())
            {
                $odir->next();
                continue;
            }
            // Verzeichnisse rekursiv aufrufen
            elseif($odir->isDir())
                search($odir->getPathName());
            // In html-Dateien suchen
            elseif(preg_match('/\.html?/i', $odir->getFilename()))
            {
                // Dafür den Textinhalt laden
                $content = strip_tags(file_get_contents($odir->getPathName()));
                // Darin nach $_GET['q'] suchen und bei Erfolg einen Link ausgeben
                if(stripos($content, $_GET['q']) !== false)
                    echo('<li><a href="'.$odir->getPathName().'">'.$odir->getFilename().'</a></li>'.PHP_EOL);
            }
           
            $odir->next();
        }
    }
    search('./');
?>
</ul>

Download

Dateiname
In Dateien suchen.php
Größe
1.39kb