diedVIPs

html knowhow

Verzeichnisse nach Dateinamen durchsuchen










Verzeichnisse nach Dateinamen durchsuchen

Wenn Sie einen Namen eingeben versucht das Modul diesen in einer Datei im aktuellen Verzeichnis zu finden und gibt das Ergebnis aus.
So sieht´s aus







Quellcode
<html>
<head>
<style type="text/css">Hier nichts</style>
</head>

<body >
<?php
$verzeichnis = "./";
$dateiendungen = ["txt", "htm", "php"];
$suche = isset($_POST["text"]) ? $_POST["text"] : '';
$suche = htmlspecialchars($suche);
$checked = isset($_POST["matchCase"]) ? ' checked="checked"' : '';
$checked2 = isset($_POST["order"]) ? ' checked="checked"' : '';
$checked3 = isset($_POST["files"]) ? ' checked="checked"' : '';
echo '<form method="post">
<label> Suche: <input type="search" name="text" value="' . $suche . '" size="40" required="required" autofocus="autofocus"></label>
<input type="submit" value="los"><br>
<label><input type="checkbox" name="matchCase"' . $checked . '> Groß- und Kleinschreibung beachten</label><br>
<label><input type="checkbox" name="order"' . $checked2 . '> Sortierreihenfolge ändern</label><br>
<label><input type="checkbox" name="files"' . $checked3 . '> Dateien (' . implode(", ", $dateiendungen) . ') öffnen und durchsuchen</label>
</form>';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$ergebnis = alle_dateien($verzeichnis, $_POST["text"]);
if (isset($_POST["order"])) {
rsort($ergebnis);
}
else {
natcasesort($ergebnis);
}
foreach ($ergebnis as $zaehler => $element) {
$element = str_replace('\\', '/', $element);
list($link, $datum, $bytes) = explode('|', $element);
$datum = date("d.m.Y H:i", $datum);
echo ($zaehler+1) . '. <a href="'. $link .'">'. $link .'</a> <small>' . $datum . ' - ' . $bytes . ' Bytes</small><br>';
}
}
function alle_dateien($dir, $text) {
global $dateiendungen;
$files = Array();
$file_tmp = glob($dir . '*', GLOB_MARK);
foreach ($file_tmp as $item) {
if (substr($item,-1) != DIRECTORY_SEPARATOR) {
if (isset($_POST["files"]) &&
is_file($item)) {
if (in_array(substr($item, -3), $dateiendungen)) {
$text = file_get_contents($item);
if (!isset($_POST["matchCase"])) {
$text = strtolower($text);
}
if (substr_count($text, $_POST["text"]) > 0) {
$files[] = $item . '|' . filemtime($item) . '|' . filesize($item);
}
}
}
else {
if (isset($_POST["matchCase"])) {
if (strstr($item, $text)) {
$files[] = $item . '|' . filemtime($item) . '|' . filesize($item);
}
}
else {
if (stristr($item, $text)) {
$files[] = $item . '|' . filemtime($item) . '|' . filesize($item);
}
}
}
}
else {
$files = array_merge($files, alle_dateien($item, $text, $_POST));
}
}
return $files;
}
?>
</body>

</html>










Kontakt    Datenschutz    Impressum