- Konum
- BERTUNA
-
- Üyelik Tarihi
- 2 Haz 2020
-
- Mesajlar
- 5,338
-
- MFC Puanı
- 16,230
Ekran Görüntüleri :
Kod İçeriği :
Web Tarayıcı Satırı (yerel bilgisayar) : http://localhost/my_php_template/file_list.php
Güle güle kullanın...
Kod İçeriği :
PHP:
<?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 Masaüstüne Kaydet</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...