PHP If File exists: Prüfen, ob eine Datei existiert

Das Code-Beispiel unten zeigt welche Abfragen nötig sind, wenn das Script Dateien nutzt, aus denen Informationen ausgelesen oder in denen Daten abgelegt werden. Neben der Existenz der Datei werden Informationen bzgl. der vorgegebenen Zugriffsrechte abgefragt, damit bestimmte Operationen unter den gegebenen Umständen nicht durchgeführt werden. Da der unerlaubte Zugriff auf Files unter PHP mit einem Scriptfehler quittiert werden, sollten derartige Prüfungen stets erfolgen. Auftretende PHP-Fehler und die damit ausgegebenen Fehlermeldungen sollten durch die entsprechenden Abfragen im PHP-Code verhindert werden.

// Angabe eines Dateinamen, der für nachfolgende Prüfungen verwendet wird
$dateiname = 'counter.txt';
// Existiert ein Eintrag mit dem Namen?
if (file_exists ($dateiname))
    // Handelt es sich um eine Datei?
    if (is_file ($dateiname)) {
        echo "Wir haben eine Datei!<br>";
        // Ist der Lesende Zugriff auf die Datei möglich?
        if (is_readable ($dateiname)) {
            // Auslesen der Datei möglich
            ...
            // Können wir auch in die Datei schreiben?
            if (is_writeable ($dateiname)) {
                // Überschreiben und auch Löschen des Files möglich
                ...
            }
        }
    }

Einfache Entweder-Oder-Abfrage

Neben der traditionellen Variante der If-Else-Anweisung existiert auch unter PHP eine vereinfachte Abfragevariante. Mit dieser lassen sich bedingte Anweisungen kurz und knapp formulieren. Genutzt wird diese Möglichkeit, wenn es im Programmablauf genau zwei Möglichkeiten gibt, mit der fortgefahren werden kann. Die Entweder-Oder-Anweisung besteht aus einem Abfrageteil, der die Bedingung(en) enthält und durch ein Fragezeichen von den Alternativen getrennt wird, sowei zwei alternativ auszuführende Anweisungen, die durch einen Doppelpunkt voneinander getrennt sind. Wie bei der „normalen” Variante sind auch bei der Kurzschreibweise geschachtelte Abfragen erlaubt.

<?php
// Wert der für die Berechnung verwendet wird
$val = 5;
// Operation, die durchgeführt werden soll
$op = '+';

// Zwei alternative Schreibweisen für die Durchführung der Operation in Abhängigkeit
// von der im String angegebenen Operation

// Variante 1:
// Soll addiert werden?
if ($op == '+')
    // Dann machen wir das auch!
    $ergebnis = $val + $val;
else
    // Ansonsten wird multipliziert
    $ergebnis = $val * $val;
// Ausgabe des zuvor berechneten Ergebnisses
echo "Ergebnis der Operation: $ergebnis<br>";

// Variante 2:
// Den selben Effekt erreichen wir auch mit der kürzeren Schreibweise
$ergebnis = $op == '+' ? $val + $val : $val * $val;
// Wir wollen das Ergebnis auch hier nicht für uns behalten...
echo "Ergebnis der Operation: $ergebnis<br>";
?>

Ergebnis der Operation: 10
Ergebnis der Operation: 10

<?php
// Ein weiteres Beispiel zu einer verschachtelten If-Struktur
$a = 4;
$b = 4;
if ($a < 5) {
    if ($b < 5)
        $b = $b + 1;
    // Folgende zwei Zeilen sind eigentlich überflüssig sollen nur die
    // Parallelen zur nächsten Variante zeigen.
    else
        $b = $b;
}
else
    $b = $b + 2;
echo "a: $a b: $b<br>";

// Folgende Variante der Entweder-Oder-Abfrage gleicht der aus dem oberen If-Beispiel gewählten
// traditionellen Struktur ist allerdings (für das menschliche Auge) etwas schwerer zu lesen.
$a = 4;
$b = 4;
$b = $a < 5 ? ($b < 5 ? $b + 1 : $b) : $b + 2;
echo "a: $a b: $b<br>";
?>

a: 4 b: 5
a: 4 b: 5


Fatal error: Uncaught Error: Call to undefined function ereg() in /homepages/26/d102044405/htdocs/_WEB_FORUM_EVO_/forum_last.php:6 Stack trace: #0 {main} thrown in /homepages/26/d102044405/htdocs/_WEB_FORUM_EVO_/forum_last.php on line 6

¬ Tutorials



¬ Insolvenzrecht