Suche nach als

Datei Info

Auf dieser Seite:

Alles was man über eine Datei erfahren kann, wird hier ausgegeben. Zwei Lösungsansätze werden vorgestellt: eine eigene Funktion und eine eigene Klasse. Diese beiden Beispiele sind exemplarisch zum Verständniss von Funktionen und Klassen.

Die darin verwendeten PHP Sprachelemente sind:

is_file(), is_dir()

is_readable(), is_writable(), is_executable() und filesize()

fileatime(), filemtime(), und filectime()

Eine Funktion

function()

Im folgenden Beispiel erstellt Matt Zandstra eine eigene Funktion, um alle möglichen Informationen aus einer Datei auszulesen.

<?php
# Dank an Matt Zandstra
function FileInfo$file ) { // Funktion benennen und Variable für erwarteten Parameter bereitstellen
 
if ( ! file_exists$file ) ) {
  print 
"$file existiert nicht.<br/>";
  return;
 }
 print 
"$file ist ".(       is_file$file )?"":"k")."eine Datei.<br/>";
 print 
"$file ist ".(        is_dir$file )?"":"k")."ein Verzeichnis.<br/>";
 print 
"$file ist ".(   is_readable$file )?"":"nicht ")."lesbar.<br/>";
 print 
"$file ist ".(   is_writable$file )?"":"nicht ")."schreibbar.<br/>";
 print 
"$file ist ".( is_executable$file )?"":"nicht ")."ausführbar.<br/>";
 print 
"$file ist ".( filesize($file))." bytes gross.<br/>";
 print 
"$file wurde am "
  
.date"D d M Y g:i A"fileatime$file ) )." zuletzt dargestellt.<br/>";
 print 
"$file wurde am "
  
.date"D d M Y g:i A"filemtime$file ) )." modifiziert.<br/>";
 print 
"$file wurde am "
  
.date"D d M Y g:i A"filectime$file ) )." erstellt.<br/>";
}
?>

Die Funktion wird aufgerufen, indem ich ihren Namen nenne und ihr den Parameter zur Verarbeitung übergebe.

<?php
  FileInfo
("datei.php");
?>

Erklärungen

Zum Beispiel die Zeile:
print "$file ist ".( is_file( $file )?"":"k")."eine Datei<br/>";
verwendet einen ternären Operator. Wenn die Funktion is_file() TRUE zurück gibt, ist der Wert ein leerer String "", andernfalls ist der Wert "k" und aus 'eine' würde 'keine' werden. (Ein ternärer Operator ist eine verkürzt geschriebene if-else Bedingung.)

Das Gleiche kann auch etwas verständlicher geschrieben werden:
$is_it=is_file($f)?"":"k";
print "$f ist $is_it"."eine Datei";

Am längsten aber verständlichsten ist die Formulierung mit einer if-Schleife:
if(is_file($f)) {
print "$f ist eine Datei<br/>;
} else {
print "$f ist keine Datei<br/>";
}

datei.php ist eine Datei.
datei.php ist kein Verzeichnis.
datei.php ist lesbar.
datei.php ist schreibbar.
datei.php ist nicht ausführbar.
datei.php ist 671 bytes gross.
datei.php wurde am Sat 19 May 2012 5:20 PM zuletzt dargestellt.
datei.php wurde am Sat 19 May 2012 5:20 PM modifiziert.
datei.php wurde am Sun 20 May 2012 8:37 AM erstellt.

Mehr zu Funktionen.

Eine Klasse

new KlasseName()

Im folgenden Beispiel erstellt Mark Lubkowitz eine eigene Klasse mit einer eigenen Methode um Dateiinformationen auszugeben. (Eine Methode ist eine Funktion einer Klasse.) Er verwendet dabei die oben beschriebenen, von PHP vorgegebenen Sprachelemente.

<?php
# Dank an Mark Lubkowitz
class DateiInfo
{
public 
$filename;
public 
$size;
public 
$type;
public 
$lastChange;
public 
$lastChangeUnix;
public 
$owner;
public 
$readable;
public 
$writeable;
public 
$executable;

function 
DateiInfo($filename)
{
 
$this->filename $filename;
 
$this->size filesize($filename);
 
$this->type filetype($filename);
 
$this->lastChange strftime("%d.%m.%Y %H:%M",filemtime($filename));
 
$this->lastChangeUnix filemtime($filename);
 
$this->owner fileowner($filename);
 
$this->readable is_readable($filename);
 
$this->writeable is_writeable($filename);
 
$this->executable is_executable($filename);
 }
}
?>

Und so wird eine Instanz der Klasse deklariert und genutzt.

<?php
$fi 
= new DateiInfo('datei.php'); // Datei nennen für welche Info gewünscht wird
echo "Dateiname: $fi->filename<br />\n";
echo 
"Größe: $fi->size Byte<br />\n";
echo 
"Type: $fi->type<br />\n";
echo 
"Letzte Änderung: $fi->lastChange<br />\n";
echo 
"Besitzer: $fi->owner<br />\n";
echo 
"Lesbar: $fi->readable<br />\n";
echo 
"Schreibbar: $fi->writeable<br />\n";
echo 
"Ausführbar: $fi->executable";
?>
Dateiname: datei.php
Größe: 671 Byte
Type: file
Letzte Änderung: 19.05.2012 17:20
Besitzer: 12055
Lesbar: 1
Schreibbar: 1
Ausführbar:


Valid XHTML 1.0 Check den Code.

Datei importieren >> << Dateien und Ordner:
Ich bin hier: > PHP Lehrling >>> Datei Info
 
HTML und XHTML | CSS | JavaScript und DHTML | PHP und MySQL | Andere Sprachen
Letzter Update: 18.10.2010