Armin: Pfadangaben in PHP für Linux und Windows

Beitrag lesen

Hallo, ich möchte eine PHP Anwendung unter allen Betriebssysteme zum laufen bringen. Es werden viele Operationen auf dem Filesystem vorgenommen, es werden z.B. XML Datein geladen die irgendwo auf dem Server liegen, oder es werden .txt Dateien irgendwohin geschrieben.

Diese festen Pfade werden über Konstanten definiert, z.B.:

define("TMP_DIR", "var/html/db/");
define("XML_DIR", "var/XML/");

im Code wird das Verzeichnis dann z.B. als Basisverzeichnis verwendet weil die Unterverzeicnise ab dann variabel sein könen:

$fp1 = fopen(TMP_DIR . "/tmp1/".$datname1.".txt","wb");
$fp2 = fopen(TMP_DIR . "/tmp2/".$datname2.".txt","wb");

$xmlfile_query = XML_DIR.'/template/query/'.$active_msconfig.'.xml');
$xmlfile_edit = XML_DIR.'/template/edit/'.$active_msconfig.'.xml');

Wie muss ich diese Pfadangaben nutzen damit das auch zuverlässig unter Windows läuft? Muss ich hier alles mit Backslashes abhandeln bzw. was mache ich wenn ein User in der Konfiguration es mal mit Slash mal mit Backslash einträgt? Oder mal mit Doppel Backslah etc. Ich habe es ausprobiert, es läuft ja anscheinend auch gemischt, aber ist das zuverlässig?

z.B.

define("TMP_DIR", "C:\\Inetpub\db\\");
define("XML_DIR", "C:\Inetpub\\xml\\");

Danke + Gruß Armin