Markus: Php und IIS

Hallo liebe Leute!

Ich habe folgendes Problem:

Ich möchte mit PHP in einer Textdatei schreiben, die in einem anderen virtuellen Verzeichnis liegt als das Skript selbst.

Skript:

$fd = fopen ("../../bwerp/standard.dta", "a"); // alternativ: http://localhost/bwerp/textdatei.dta

fwrite($fd,"text");
fclose ($fd);

Wenn ich relativ verlinke, erhalte ich immer folgende Fehlermeldung:

Warning: fopen("../../bwerp/standard.dta", "a") - No such file or directory in C:\ZMR_Programm\www\benutzerverwaltung\update.php on line 14

Warning: Supplied argument is not a valid File-Handle resource in C:\ZMR_Programm\www\benutzerverwaltung\update.php on line 21

Warning: Supplied argument is not a valid File-Handle resource in C:\ZMR_Programm\www\benutzerverwaltung\update.php on line 22

Wenn ich jedoch absolut mit http://localhost/bwerp/textdatei.dta verlinke, findet er die Datei, schreibt jedoch nicht in diese.

Weis jemand, wo das Problem liegt???

Liebe Grüße und danke!!!

Markus

  1. Hallo,

    Skript:
    [...]

    Wenn ich relativ verlinke, erhalte ich immer folgende Fehlermeldung:
    [...]

    Wenn ich jedoch absolut mit http://localhost/bwerp/textdatei.dta verlinke, findet er die Datei, schreibt jedoch nicht in diese.

    http://localhost/...... ist zwar ein absoluter Link, aber er benutzt das HTTP-Protokoll. Über das HTTP-Protokoll kann man im Normalfall nicht schreiben. (außer mit PUT und das macht PHP nicht automatisch) Wenn Du also die Datei referenzieren willst, musst Du einen absoluten Pfad innerhalb deines Dateisystems angeben. Dazu würde ich das ganze dann generisch machen:

    fopen (dirname(__FILE__) . "/../../bwerp/standard.dta", "a");

    Beachte, dass der erste Schrägstrich im Pfadnamen notwendig ist, weil dirname den Namen des Verzeichnisses ohne Schrägstrick hintedran zurückgibt. __FILE__ gibt in PHP die Datei, wo man sich aktuell befindet, an.

    Grüße,

    Christian