PHP Web Site Dosya Yöneticisi v1.0

Cevapla
Kullanıcı avatarı
TRWE_2012
Mesaj Panosu Yöneticisi
Mesaj Panosu Yöneticisi
Mesajlar: 904
Kayıt: 30 Ağu 2022 21:59
Konum: DÜZCE/Akçakoca
Meslek: MADEN MÜHENDİSİ
Teşekkür etti: 254 kez
Teşekkür edildi: 754 kez
İletişim:

PHP Web Site Dosya Yöneticisi v1.0

Mesaj gönderen TRWE_2012 »

Ekran Görüntüleri :

ResimResim

Kod İçeriği :

Kod: Tümünü seç




<?php
header('Content-Type: text/html; charset=utf-8'); // Karakter setini UTF-8 olarak ayarlayın
$files = [];
$directory = '';

// Dizin yolu gönderildiğinde
if (isset($_POST['directory'])) {
    $directory = $_POST['directory'];

    // Dizin içeriğini al
    function listFiles($dir) {
        $files = [];
        $items = scandir($dir);
        foreach ($items as $item) {
            if ($item == '.' || $item == '..') continue; // Geçersiz dizinler
            $path = $dir . '/' . $item;
            $size = is_dir($path) ? 0 : filesize($path); // Dizin ise boyut 0
            $sizeFormatted = formatSize($size); // Boyutu formatla
            $files[] = [
                'name' => $item,
                'path' => $path,
                'size' => $sizeFormatted,
                'is_dir' => is_dir($path),
                'children' => is_dir($path) ? listFiles($path) : [] // Alt dizinleri listele
            ];
        }
        return $files;
    }

    // Boyutu formatlamak için fonksiyon
    function formatSize($size) {
        if ($size < 1024) {
            return $size . ' B'; // Bayt
        } elseif ($size < 1024 * 1024) {
            return round($size / 1024, 2) . ' kB'; // Kilobayt
        } else {
            return round($size / (1024 * 1024), 2) . ' MB'; // Megabayt
        }
    }

    // Dizin var mı kontrol et
    if (is_dir($directory)) {
        $files = listFiles($directory);
    } else {
        $error = "Geçersiz dizin yolu.";
    }
}
?>

<!DOCTYPE html>
<html lang="tr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Dosya Yöneticisi</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 20px;
            background-color: #f4f4f4;
        }
        h1 {
            text-align: center;
        }
        .file-list {
            list-style: none;
            padding: 0;
        }
        .file-list li {
            padding: 10px;
            border-bottom: 1px solid #ddd;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        .file-list li:last-child {
            border-bottom: none;
        }
        button {
            padding: 5px 10px;
            border: none;
            border-radius: 3px;
            cursor: pointer;
            background-color: #007BFF;
            color: white;
        }
        .error {
            color: red;
            text-align: center;
        }
    </style>
</head>
<body>

<div class="file-manager">
    <h1>Dosya Yöneticisi</h1>
    
    <form method="POST">
        <input type="text" name="directory" placeholder="Dizin yolunu girin" value="<?php echo htmlspecialchars($directory, ENT_QUOTES, 'UTF-8'); ?>" required>
        <button type="submit">Listele</button>
    </form>

    <?php if (isset($error)): ?>
        <div class="error"><?php echo htmlspecialchars($error, ENT_QUOTES, 'UTF-8'); ?></div>
    <?php endif; ?>

    <ul class="file-list">
        <?php
        function renderFileList($files) {
            foreach ($files as $file): ?>
                <li>
                    <span><?php echo htmlspecialchars($file['name'], ENT_QUOTES, 'UTF-8'); ?> (<?php echo $file['size']; ?>)</span>
                    <span><?php echo $file['is_dir'] ? 'Klasör' : 'Dosya'; ?></span>
                </li>
                <?php if ($file['is_dir'] && !empty($file['children'])): ?>
                    <ul>
                        <?php renderFileList($file['children']); ?>
                    </ul>
                <?php endif; ?>
            <?php endforeach;
        }
        renderFileList($files);
        ?>
    </ul>
    <button onclick="downloadList()">Bu Listelemeyi Sistem İndir</button>
</div>

<script>
    function convertTurkishToEnglish(text) {
        const turkishChars = {
            'ç': 'c',
            'ğ': 'g',
            'ı': 'i',
            'ö': 'o',
            'ş': 's',
            'ü': 'u',
            'Ç': 'C',
            'Ğ': 'G',
            'İ': 'I',
            'Ö': 'O',
            'Ş': 'S',
            'Ü': 'U'
        };

        return text.split('').map(char => turkishChars[char] || char).join('');
    }

    function downloadList() {
        const list = document.querySelector('.file-list').innerHTML; // HTML içeriğini al
        const convertedList = convertTurkishToEnglish(list); // Türkçe karakterleri İngilizce karşıtlarıyla değiştir
        const blob = new Blob([convertedList], { type: 'text/html;charset=utf-8' }); // HTML olarak ayarlayın
        const link = document.createElement('a');
        link.href = window.URL.createObjectURL(blob);
        link.download = 'dosya_listesi.html'; // İndirilecek dosya adı
        document.body.appendChild(link); // Linki body'e ekle
        link.click(); // Linke tıkla
        document.body.removeChild(link); // Linki kaldır
    }
</script>

</body>
</html>

Web Tarayıcı Satırı (yerel bilgisayar) : http://localhost/my_php_template/file_list.php

Güle güle kullanın...

NOT:

Kodlaması tamamen bana aittir.Ne bir alıntı ne de bir çalıntı....Bütün günümü aldı kodlaması (çünkü amatörüm ve deneme-yanılma ile kodlama sorunlarını çözmeye çalışıyorum ve bu durum da bana, baya bir zaman kaybettiriyor) ama sonuçta ortaya güzel ve yararlı çalışmalar çıkıyor.

Diğer .php kod çalışmalarım (hepsi basit ve yararlı ve de bunları kullanmaktayım)


Resim
not:Ekran görüntüsünde, Windows11 altında çalışan İE12 (normalde bunu çalıştıramazsınız ama .vbs betiğin gücü ile imkansızlıklar aşılır.) kend "Büyük Not Defterim (yerel pc üzerinde))
Verily We have granted thee a manifest Victory
Fetih Suresi - 1.Ayet


Resim
Resim

Etiketler:
trasmus
ARGE Ekip Üyesi
ARGE Ekip Üyesi
Mesajlar: 76
Kayıt: 28 Eyl 2023 14:47
Teşekkür etti: 30 kez
Teşekkür edildi: 86 kez

Re: PHP Web Site Dosya Yöneticisi v1.0

Mesaj gönderen trasmus »

@TRWE_2012 aşağıda verdiğim kod parçasını, scriptinin formatSize fonksiyonuna uyarlarlayabilirsin:

Kod: Tümünü seç

$arr = ["byte","kb","mb","gb","tb"];
$carpan = 1024; // IEEE 1541'e göre 2^10 katları olarak alınmıştır.
$boyut = 1; // Bayt cinsinden değer giriniz.

for($i = 0; $i < count($arr); $i++){
  $islem = pow($carpan , $i);
  if ($boyut < 1024){
    print $boyut." ".$arr[$i];
    break;
  }elseif ( $boyut < pow($carpan,$i+1) ){
  print round( ($boyut / $islem), 2)." ".$arr[$i];
  break;}
}
Kullanıcı avatarı
TRWE_2012
Mesaj Panosu Yöneticisi
Mesaj Panosu Yöneticisi
Mesajlar: 904
Kayıt: 30 Ağu 2022 21:59
Konum: DÜZCE/Akçakoca
Meslek: MADEN MÜHENDİSİ
Teşekkür etti: 254 kez
Teşekkür edildi: 754 kez
İletişim:

Re: PHP Web Site Dosya Yöneticisi v1.0

Mesaj gönderen TRWE_2012 »

trasmus yazdı: 05 Ara 2024 11:42 @TRWE_2012 aşağıda verdiğim kod parçasını, scriptinin formatSize fonksiyonuna uyarlarlayabilirsin:

Kod: Tümünü seç

$arr = ["byte","kb","mb","gb","tb"];
$carpan = 1024; // IEEE 1541'e göre 2^10 katları olarak alınmıştır.
$boyut = 1; // Bayt cinsinden değer giriniz.

for($i = 0; $i < count($arr); $i++){
  $islem = pow($carpan , $i);
  if ($boyut < 1024){
    print $boyut." ".$arr[$i];
    break;
  }elseif ( $boyut < pow($carpan,$i+1) ){
  print round( ($boyut / $islem), 2)." ".$arr[$i];
  break;}
}
Öncellikle teşekkürler forumda açılan bu forum konusuna yorum yazdığın için...
Verily We have granted thee a manifest Victory
Fetih Suresi - 1.Ayet


Resim
Resim
Cevapla

“Php” sayfasına dön