Fájlokat listázó PHP script Apache webszerverre

A mai bejegyzésünkben bemutatunk egy egyszerű, de nagyon hasznos PHP szkriptet, amely lehetővé teszi számunkra, hogy listázzuk a fájlokat egy meghatározott könyvtárban a webkiszolgálónkon. Ez a funkcionalitás különösen hasznos lehet webfejlesztők és rendszergazdák számára, akik gyorsan szeretnének információt szerezni a szerverükön tárolt fájlokról.

Miért hasznos ez a szkript?

  • Könnyű hozzáférés: Közvetlenül a böngészőből elérhető, ami lehetővé teszi a szerveren tárolt fájlok gyors megtekintését.
  • Biztonságos: A szkript kizárja a PHP és a komment fájlokat, valamint megakadályozza a Google-t a tartalom indexelésében.
  • Testreszabható: Lehetőség van beállítani a meta címet és leírást, valamint a megjelenített fájltípusokat is szabályozhatjuk.

Hogyan működik a szkript?

A szkript a PHP beépített DirectoryIterator osztályát használja, ami egyszerűvé teszi a fájlok böngészését egy adott könyvtárban. A kód figyelembe veszi a fájlok nevét, kiterjesztését, méretét és a hozzájuk tartozó megjegyzéseket is, amennyiben léteznek. A fájlnevek linkként jelennek meg, ami lehetővé teszi a fájlok közvetlen megnyitását.

Biztonsági jellemzők

A szkript biztonsági okokból nem listázza a PHP fájlokat, hogy megakadályozza a potenciálisan érzékeny kódok szerverről való közvetlen elérését. Ezenkívül a meta tag-ek (noindex, nofollow) biztosítják, hogy a tartalom ne legyen indexelhető a keresőmotorok számára.

A listázható fájlok kiterjesztését természetesen tudod módosítani a $allowedExtensions sorban.

Hogyan használható?

A szkript használatához egyszerűen töltsd fel a PHP fájlt a kívánt könyvtárba a szervereden, és nyisd meg a fájlt a böngésződben. A script automatikusan listázza a könyvtárban lévő fájlokat.

Kód részletei

Itt találod a teljes PHP kódot, amelyet a blogbejegyzésben tárgyaltunk:

<?php
$directory = '.'; // Jelenlegi könyvtár. Szükség esetén módosítható.
$allowedExtensions = ['txt', 'jpg', 'png', 'mp3', 'avi', 'pdf']; // Engedélyezett fájlkiterjesztések
$metaTitle = "Adja meg a Meta Címet"; // Meta Title
$metaDescription = "Adja meg a Meta Leírást"; // Meta Description

echo "<!DOCTYPE html>";
echo "<html lang='hu'>";
echo "<head>";
echo "<meta charset='UTF-8'>";
echo "<meta name='viewport' content='width=device-width, initial-scale=1.0'>";
echo "<meta name='title' content='" . htmlspecialchars($metaTitle) . "'>";
echo "<meta name='description' content='" . htmlspecialchars($metaDescription) . "'>";
echo "<meta name='robots' content='noindex, nofollow'>";
echo "<style>";
echo "table { width: 90%; margin: auto; border-collapse: collapse; }";
echo "@media (max-width: 600px) { table { width: 100%; } }";
echo "th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }";
echo "</style>";
echo "</head>";
echo "<body>";

echo "<table>";
echo "<tr><th>Fájl neve</th><th>Kiterjesztése</th><th>Mérete</th><th>Comment</th></tr>";

foreach (new DirectoryIterator($directory) as $fileInfo) {
    if($fileInfo->isDot() || $fileInfo->getExtension() == 'php' || strpos($fileInfo->getFilename(), '_comment') !== false) continue;

    $filename = $fileInfo->getFilename();
    $fileExtension = $fileInfo->getExtension();

    if (!in_array($fileExtension, $allowedExtensions)) continue;

    $realPath = realpath($fileInfo->getPathname());
    if (strpos($realPath, realpath($directory)) !== 0) continue;

    $fileSize = $fileInfo->getSize();
    $fileLink = htmlspecialchars($filename);

    $commentFileName = $directory . '/' . pathinfo($filename, PATHINFO_FILENAME) . '_comment.txt';
    $comment = '';
    if (file_exists($commentFileName)) {
        $comment = htmlspecialchars(file_get_contents($commentFileName));
    }

    echo "<tr><td><a href='{$fileLink}'>{$filename}</a></td><td>{$fileExtension}</td><td>{$fileSize} bytes</td><td>{$comment}</td></tr>";
}

echo "</table>";
echo "</body>";
echo "</html>";
?>

Ez a PHP szkript egy egyszerű és hatékony eszköz a webfejlesztők és rendszergazdák számára, hogy gyorsan hozzáférjenek a szerverükön tárolt fájlokhoz. A beépített biztonsági jellemzőkkel és a testreszabható opciókkal ez a szkript egy hasznos kiegészítő lehet bármely webprojekt számára.

Hugyecz Görgy (Harder)
20+ éve munkám és hobbim is az online világhoz köt. Az utóbbi 10+ évben leginkább keresőopimalizálás (SEO) témában tevékenykedem, mellette pedig Google Ads és Facebook PPC fronton is segítem ügyfeleimet. Korábban 10+ évig webgrafika, sitebuild, weboldal készítés témakörben mozogtam.

HOZZÁSZÓLOK A CIKKHEZ

Kérjük, írja be véleményét!
írja be ide nevét