braucht chdir() unter Windows die Pfandangabe mit C:\... usw?

FillaBunneh

Grünschnabel
Hallo Leute,

Habe hier ein PHP-Script vor mir, das offensichtlich für einen Linux-Server gedacht ist.
Da ich das Script ausbesern soll, meinen Server aber unter Windows laufen lasse, bekomme ich Probleme mit chdir()

Die Pfadänderungen laufen bisher so ab:
PHP:
chdir($pfad_apache_home.$pfad_dv_seminar."admin");
mit:
PHP:
$pfad_apache_home  = "/www/htdocs/";
$pfad_dv_seminar   = "dv_seminar/";
der Pfad sieht also so aus:
/www/htdocs/dv_seminar/admin
(ist das eigentlich der Linux-Pfad auf der Festplatte oder der http-Pfad bezüglich dem document root?)

und ich vermute, dass mir getcwd() unter Linux anschließend auch diesen Pfad anzeigen würde.
Unter Windows zeigt getcwd() aber was ganz anderes an, und zwar sowas:
D:\Apache-Server\dv_seminar\admin
also andere slashes und den Pfad als Windows-Pfad

Wenn ich jetzt das Verzeichnis wecheln will mit chdir() akzeptiert mein PHP den linux-pfad nicht (nicht vorhanden) sondern will den Windows-Pfad. Sämtliche Pfade zu ändern ist aber nicht sinnvoll, da das ganze später wieder auf dem Linux-Server laufen soll.

Wenn ich mich mit "../" durch die Verzeichnisse hangele gelange ich auch ans Ziel, kann dann aber nicht die beiden Variablen ($pfad_apache_home,$pfad_dv_seminar) benutzen und muss immerzu wissen in welchem Verzeichnis ich mich gerade befinde (ganz zu schweigen von der Problematik ein zusätzliches codeschnipsel zwischen zwei chdir()-Befehle zu setzen).

Was ich brauche:
Eine Möglichkeit, wie ich die Variablen ($pfad_apache_home,$pfad_dv_seminar) und eindeutige Pfadangaben NICHT durch "../"- und Unterverchnis-Gehangel ersetzen muss.
oder:
auf was muss ich $pfad_apache_home und $pfad_dv_seminar setzen wenn mein Document-root "D:\Apache-Server\" lautet und das dv_seminar-Verzeichnis hier liegt:
"D:\Apache-Server\dv_seminar"

Momentan habe ich $pfad_apache_home auf "localhost" gesetzt und $pfad_dv_seminar auf "\dv_seminar\", funktioniert aber nicht. Hilfe wäre wunderbar, und nein ich setze nicht schnell ein Linux-System auf ;D

PS: Kenne mich mit Linux nicht so aus und bitte deshalb eventuelle Verständnisfehler zu tolerieren ; )

EDIT:
Habe tatsächlich beschlossen meine Vista-Partition zu formatieren und ein Linux draufzuhauen, höhö
mal sehen ob ich damit Erfolg habe oder mir nur noch mehr Arbeit mache > .<
 
Zuletzt bearbeitet:
mal ne Antwort unter Vorbehalt - nicht getestet.

wenn ich das mal logisch durchdenke, dann sollten deine beiden Variablen so gesetzt werden:

$pfad_apache_home = "D:\Apache-Server\"; // Document-Root
$pfad_dv_seminar = "dv_seminar\"; // Unterverzeichnis

gegen die unterschiedlichen Slashes kannst du leider nichts machen, das ist nun mal in Linux und Windows unterschiedlich

/www/htdocs/dv_seminar/admin
(ist das eigentlich der Linux-Pfad auf der Festplatte oder der http-Pfad bezüglich dem document root?)
Das ist der Linux-Pfad auf der Festplatte.
Die Wurzel des Verzeichnisbaumes wird durch / angegeben.
/ ist also das oberste Hauptverzeichnis, von dem es unter Linux nur eines gibt (im Gegensatz zu Windows - man könnte hier zwar argumentieren, dass der Desktop bzw. der Arbeitsplatz als alternatives Hauptverzeichnis gelten, aber der Ansicht bin ich nicht).

Danach hangelst du dich im Verzeichnisbaum herunter:
www - Verzeichnis des Apache
htdocs - Verzeichnis Standard-Document-Root
dv_seminar - Verzeichnis

gruß shutdown
 
Okay, das ist doch schonmal etwas, danke.

Ich werds mal schnell ausprobieren
(hoffentlich sind nirgends im script zusätzliche "/" erwähnt, die mir den gesamten verzeichnisnamen versauen)

EDIT:
also gut, scheint bisher ganz gut zu funktionieren.
Vielen Dank Shutdown

PS:
Linux werd ich trotzdem mal probieren ;D
 
Zuletzt bearbeitet:
Zurück