Recent Changes - Search:

Hauptmenue (edit)

Php /

PHPundSeinePfade

<< VerzeichnisLesen | PhpSchnipsel | >>

Das Dateisystem und seine Pfade

Immer wieder gibt es Verständnissschwierigkeiten mit den Pfaden. Auf Einzelplatzrechern ist die Sache noch recht übersichtlich. Tauchen wir aber ins Webserverumfeld ein, wird es etwas komplizierter. Hier soll haptsächlich über das Vorkommen von Pfaden in irgendwelchen PHP, HTML, CSS und JS Dateien die Rede sein.

Die Sorgenkinder:

  • Betriebsystem spezifische Eigenheiten
  • Dateisystem Eigenheiten
  • Das Rechtesystem
  • Relative Pfade
  • Absolute Pfade
  • Urls

Die häufigste Fage dürfte in die Richtung gehen: "Was muß ich da eintragen, damit es fluppt?" Natürlich kann man diese Frage nicht so aus dem Stehgreif beantworten! Wie auch, ich sitze ja nicht vor deinem Monitor und habe überhaupt keine Ahnung von deiner Konfiguration. Also wirst du die Zusammenhänge verstehen und lernen müssen, dann wird alles Gut!

Die verschiedenen Erscheinungsformen:

Diese Urls begegnen uns, wenn man mit entfernten Resourcen arbeitet. Z.B. Browser tun das und auch die PHP-FTP-Funktionen.

  • c:\pfad\datei.endung

Ein WinzigWeich Pfad zu einer Datei auf der Festplatte c:. Win selber erwartet Backslashes. In PHP können diese durch Slashes ersetzt werden.

  • //server/freigabe/datei.endung

Ein WinzigWeich Netzwerkpfad. Damit hat man im Webserverumfeld meist nix am Hut. Übrigens man kann auch hier die Backslashes in PHP durch normale Slashes ersetzen.

  • /www/server.de/htdocs/include/config.php

Dieses ist ein absoluter Pfad. Er zeigt direkt auf eine Resource.

  • ./include/config.php
  • ../include/config.php
  • include/config.php

Das sind Relative Pfade.

Das Leben erleichtern

Sonderzeichen z.B. Umlaute und Leerzeichen sollte man bei Pfadangaben unterlassen.
Warum?
Nunja, meist will man ja seine Scripte auf den unterschiedlichsten Systemen zum "fluppen" bekommen. Es gibt eine Vielzahl von Betriebsystemen und Dateisystemen, da gibt es durchaus verschiedene Kodierungen. Auch der Zeichensatz, in dem der PHP-Quelltext erfasst wurde ist von Belang. Ein iso-8859-1 Ö ist nun wirklich ganz was anderes, als ein UTF-8 Ö.

Auch mit der Großschreibung von Datei und Verzeichnissnamen muß man sehr sorgfältig umgehen. Ein typischer Fehler: Wir entwickeln auf einem WinzigWeich System und übertragen den Salat per FTP auf einen Linux Webserver.....
Und? Nix geht!!
Dateien werden nicht gefunden... Meldungen über Meldungen.. da wo Bilder sein sollten, nur Kästchen mit roten Kreuzen....

Was ist passiert?
Windows achtet nicht auf Großschreibung!! Wir können problemlos eine Datei "Editor.php" nennen und mit include "editor.php"; einbinden. Alles scheint gut! Aber der Linuxserver sieht das anders, er findert keine "editor.php".

relativ <--> absolut

Der Unterschied ist auch ganz einfach zu sehen. Absolute Pfade fangen mit einem "/" oder "c:\" an. Relative Pfade werden ohne den Startslash notiert. "./" Sagt: Wir starten den Pfad bei dem aktuellen Verzeichnis. "../" springt ein Verzeichniss in Richtung Wurzel,Root oder "/". Wird ein Pfad so "ordner/datei.php" notiert, entspricht das in fast allen Fällen der "./" Notation. Ausnahmen bilden die PHP include und require Kommandos. Diese versuchen die Datei dann im include_path zu finden.

PHP Funktionen, rund um Pfade: Die Funktionen sind mit Links versehen, welche direkt in die entsprechende Dokumentation führt. Im Zweifelsfall, hat immer das Handbuch recht und nicht ich :-)

echo getcwd();
include 'irgendwas.php';

Dieser Arikel ist gerade in Arbeit!

Wer was Gutes dazu zu sagen hat, möge mir das gerne mitteilen: uli@combie.de

<< VerzeichnisLesen | PhpSchnipsel | >>

Edit - History - Print - Recent Changes - Search
Page last modified on July 16, 2007, at 12:29 AM