Hat man eine Datei mit PHP und fopen geöffnet, so sollte sie nach Beendigung der Vorgänge wieder geschlossen werden. Genau darauf verzichten manche Programmierer und das ist ein schlechter Stil und kann negative Auswirkungen haben. So wie man die Datenbank kontaktiert und öffnet, um sie am Ende des Skripts wieder zu schließen, sollte man von Beginn an diese Vorgehensweise auch bei Dateien am Server wählen - gerade am Server und im Dateisystem.
Zum einen verbraucht man Ressourcen, die nicht nötig wären und zum anderen kann es auch zu Problemen kommen, wenn weitere Prozesse die Datei ansprechen wollen. Diese müssten dann sinnlos warten, bis der Zugriff zur Datei wieder möglich wird. Deshalb nutzt man den PHP-Befehl fclose.
Webhosting mit viel Software bei Alfahosting (Affiliate-Link)
<?php
$datei = fopen("test.txt", "r");
fclose($datei);
?>
Mit der einfachen Anweisung fclose kann man die Datei wieder schließen und sie steht etwaigen anderen Prozessen zur Verfügung. Es ist nur ein Befehl und deshalb sollte man sich diesen nicht sparen, weil bei größeren Prozessen könnte es sonst zu höheren Belastungen am Server kommen, als absolut notwendig.
Im Beispiel wurde angenommen, dass mit der Variable $datei und dem fopen-Befehl eine Datei für das Lesen geöffnet wurde. Die normalerweise erfolgten Aktivitäten habe ich jetzt außen vor gelassen und nur des Beispiels wegen den fclose-Befehl hinzugefügt. Er schließt wieder die gerade geöffnete Datei und der Vorgang der Dateienmanipulation ist beendet. Zu beachten ist, dass es den genauen Pfad braucht, wenn die Datei in einem anderen Verzeichnis zu finden ist. Andernfalls würde man eine Fehlermeldung erhalten, weil die Datei gar nicht gefunden werden konnte.
Wieso kann die Serverbelastung bei offenen Dateien zum Problem werden? Man stelle sich vor, eine Datei wird bei jedem Seitenaufruf angesprochen. Das kann zum Beispiel ein Cronjob bei einem Auktionsprojekt sein. Bei jedem Seitenaufruf wird geprüft, ob Auktionen geschlossen werden sollen oder nicht und dazu braucht es die Datei, in der mitprotokolliert wird. Wenn nun 500 Leute in kurzer Zeit eine Seite aufrufen und ebenso oft die Cronjob-Datei benötigt wird, ist es ein erheblicher Unterschied, ob die Datei nach jedem Zugriff wieder geschlossen war oder nicht.
Webhosting bei Alfahosting - jetzt gratis testen! (Affiliate-Link)
PHP + Dateisystem ist ein immer noch wichtiges Thema, aber eines, das durch den häufigen Einsatz der Datenbank doch zurückgegangen ist. Trotzdem gibt es zahlreiche Anwendungen, bei denen auf Dateien am Server zugegriffen wird wie Logfiles oder Statistikprogramm mit entsprechenden Auswertungen.
Ein zentrales Thema ist die Dateibearbeitung und das bedeutet, dass man die Datei öffnen können muss, schließen, auslesen oder die Größe ermitteln.
Ein weiterer Bereich beim Dateisystem betrifft die Frage des Dateizustandes oder ob es sich überhaupt um eine Datei handelt oder ob man die Adresse und den Namen eines Verzeichnisses erwischt hat.
Der dritte Bereich betrifft die Zugriffsrechte selbst. Die Datei gibt es, aber darf man sie beschreiben? Wenn nein, kann man mit dem Befehl chmod für eine Änderung sorgen, damit die Statistik die neuen Werte eintragen kann.
Themenseiten
Grundlagen
HTML-Grundlagen
CSS-Grundlagen
Javascript-Grundlagen
PHP-Grundlagen
MySQL-Grundlagen
SEO-Grundlagen
Infos, Tipps, Vermarktung
Webdesign-Lexikon
Online-Werbung
PHP-Codeschnipsel
Praxisartikel