PHP - Befehle - Dateisystem
1. Dateirechte unter Unix-Systemen
Unix-Systeme kennen drei Berechtigungsstufen, den Besitzer, die Gruppe, den schäbigen Rest. Wenn ihr also mit folgenden Befehlen
arbeitet, denkt immer daran, dass ihr über die notwendigen Rechte verfügt. Ein einfaches Beispiel: wenn man Daten per FTP-Programm
auf den Webserver hochlädt, so heißt der Besitzer ftpuser, wenn ihr dann mit PHP auf diese Dateien zugreift, so mit den Rechten
des Users wwwrun.
2. opendir, closedir, chdir, readdir
opendir öffnet ein ausgewähltes Verzeichnis und setzt einen "Zeiger", mit dem weitere Operationen möglich sind.
closedir schließt das Verzeichnis. Mit chdir springt man in ein anderes Verzeichnis und
readdir liest die Dateien im ausgewählten Verzeichnis aus.
<?php
$open = opendir ('bla/');
closedir ($open);
chdir ('blubb');
while ($file = readdir ($open))
{
echo $file.'<br>';
}
?>
3. chmod, umask
chmod ändert die Zugriffsrechte für Ordner und Dateien. Allerdings nur diejenigen, für die das Script die entsprechenden
Rechte hat. Gibt im Erfolgsfall true zurück. umask passt die aktuellen Zugriffsrechte an oder gibt sie
zurück.
<?php
// Legt für alle User volle Zugriffsrechte fest
$mod = chmod ('bla/blubber.gif', 0777);
// Bei Problemen mit Dateiuploads vollbringt dies wahre Wunder
$mask = umask (0);
?>
4. copy
Kopiert eine Datei von A nach B und gibt im Erfolgsfall True zurück.
<?php
$copy = copy ('bla/blubber.gif', 'blubb/blubber.gif');
?>
5. fopen, fclose
fopen öffnet eine Datei, wenn die entsprechenden Rechte vorhanden sind. fclose schließt sie wieder.
Parameter für fopen
'r'- öffnet eine Datei zum Lesen.'r+'- öffnet eine Datei zum Lesen und schreiben.'w'- öffnet eine Datei zum Schreiben. Ist die Datei nicht vorhanden, wird sie angelegt, existiert sie, wird der Inhalt gelöscht.'w+'- öffnet eine Datei zum Lesen und Schreiben. Ist die Datei nicht vorhanden, wird sie angelegt, existiert sie, wird der Inhalt gelöscht.'a'- öffnet eine Datei zum Schreiben. Ist schon Inhalt vorhanden, bleibt der erhalten und alles Neue wird dahinter geschrieben.'a+'- öffnet eine Datei zum Lesen und Schreiben. Ist schon Inhalt vorhanden, bleibt der erhalten und alles Neue wird dahinter geschrieben.
<?php
$file = fopen ('bla/blubber.txt', 'r')
?>
6. fgets, fwrite
fgets liest eine Zeile innerhalb einer Datei aus. Die Aktion wird am Zeilenende abgebrochen. Dafür muss die Datei vorher mit
fopen geöffnet werden. fwrite schreibt Zeichenketten in die Datei.
<?php
while ($line = fgets ($open))
{
echo $line.'<br>';
}
$write = fwrite ($open,'blubb blubber');
?>
7. is_wasweissichnicht
Nimmt Überprüfungen im Dateisystem vor. Dabei gibt es folgende Funktionen.
is_dir(überprüft, ob es sich um ein Verzeichnis handelt)is_file(überprüft, ob es sich um eine Datei handelt)is_readable(überprüft, ob eine Datei gelesen werden darf)is_writeable(überprüft, ob eine Datei geschrieben werden darf)is_executable(überprüft, ob eine Datei ausführbar ist)
<?php
if (is_writeable ('blubb.txt'))
?>
8. file_exists
Überprüft, ob eine Datei existiert.
<?php
if (file_exists ('blubber.txt'))
?>
9. filesize
Gibt die Größe einer Datei in Byte zurück. Allerdings muss man über das lokale Dateisystem darauf zugreifen können.
<?php
$size = filesize ('blubb.txt');
?>
10. file_get_contents, file_put_contents
Ist seit PHP 4.3 verfügbar. Dabei kann man Dateien in einem Rutsch auslesen oder in sie hineinschreiben.
<?php
$str = file_get_contents ('blubb.txt');
file_put_contents ('blubber.txt', $str);
?>