is115-php/modul8/index8_1.php

71 lines
2.0 KiB
PHP

<?php
include '../common.php';
// Logger for oppgave 2
include 'logger.inc.php';
Logger::log("Lastet modul 8 oppgave 1");
?><!DOCTYPE html>
<html lang="no">
<head>
<title><?=title();?></title>
<link rel="stylesheet" href="../index.css">
</head>
<body>
<div class="container">
<h1><?=title();?></h1>
<h4><?=getNavigation();?></h4>
<h2>Lese informasjon om filer</h2>
</div>
<div>
<table class="table">
<thead>
<tr>
<th>Filnavn</th>
<th>Filtype</th>
<th>Filstørrelse</th>
<th>Sist endret</th>
<th>Lese</th>
<th>Skrive</th>
<th>Kjøre</th>
</tr>
</thead>
<tbody>
<?php
// Scan nåværende mappe med scandir();
$katalog = array_diff( scandir("./"), array('..','.'));
// For hver fil i mappa gjøres sjekker:
foreach ($katalog as $fil){
echo "<tr>";
echo " <td>$fil</td>"; // FILNAVNET
$type = pathinfo($fil, PATHINFO_EXTENSION); // Fil-endelse
if(filetype($fil) == "dir"){ $type = "mappe"; } // Hvis $fil er en mappe så skrives det
echo " <td>".$type."</td>";
echo " <td>".filStr(filesize($fil))."</td>"; // Skriver fint hvor stor filen er
echo " <td>".date('d.m.y H:i', filemtime($fil))."</td>"; // Skriver datoen for når filen ble sist endret
echo " <td>".(is_readable($fil)?"Ja":"Nei")."</td>"; // Sjekk om filen er lesbar
echo " <td>".(is_writable($fil)?"Ja":"Nei")."</td>"; // Sjekk om filen er skrivbar
echo " <td>".(is_executable($fil)?"Ja":"Nei")."</td>"; // Sjekk om filen er kjørbar
echo "</tr>\n";
}
function filStr(int $str){
// Kunne gått høyere, men ikke aktuelt i dette scenarioet
if($str / 1024 / 1024 > 1){ return round($str/1024/1024, 1)." MB"; }
else if($str / 1024 > 0){ return round($str/1024, 1)." KB"; }
else {
return $str." bytes";
}
}
?>
</tbody>
</table>
</div>
</body>
</html>