dedlfix: "is_writable" schlägt fehl

Beitrag lesen

Tach!

Ich will den Inhalt einer Textdatei mit folgender Funktion neu schreiben:

Warum nimmst du nicht file_put_contents()?

if ($Zeiger = fopen ($Datei, 'w')) {
            if (flock ($Zeiger, LOCK_SH)) {
               if (is_writable ($Datei))

Das ganze Konstrukt ist übertrieben vorsichtig. Wenn die Datei zum Schreiben geöffnet werden kann, dann ist sie schreibbar. Es besteht kein Grund, daran zu zweifeln, wenn keine Fehlermeldung kommt. Der Grund warum is_writable() fehlschlägt, ist der Mix von handle- und namensbasierenden Funktionen. Nachdem ein Handle erzeugt wurde und über dieses Handle die Datei gesperrt wurde, versuchst du mit einer namensbasierten Funktion weiterzuarbeiten. Die weiß von dem Handle nichts und versucht die Datei zum Schreiben zu öffnen, was wegen der Sperre fehlschlägt.

dedlfix.