Mit PHP auf UNC-Pfade zugreifen
Veröffentlicht: 25-01-2010 um 14:07 von AmicaNoctis
Aktualisiert: 26-01-2010 um 00:46 von AmicaNoctis
Aktualisiert: 26-01-2010 um 00:46 von AmicaNoctis
Stichworte freigabe, netzlaufwerk, php, unc
Wenn man unter Windows eine externe Freigabe benutzt, wird man in der Regel ein "Netzlaufwerk verbinden" und unter einem neuen Laufwerksbuchstaben bereitstellen. Mit PHP kann man aber genauso gut auch direkt UNC-Pfade ansprechen und dabei auch noch frei zwischen \\ und / als Verzeichnisseparator wählen, d. h. wem "\\\\server\\folder" zu merkwürdig aussieht, der schreibt einfach "//server/folder".
Ein Problem bleibt: Die meisten Freigaben sind nur mit Benutzername und Kennwort erreichbar, aber auch das lässt sich bewerkstelligen.
Da die Funktionen "Netzlaufwerk verbinden" und "Netzlaufwerk trennen" auch von der Konsole aus zur Verfügung stehen, kann man exec benutzen, um diese Kommandos zu Beginn bzw. am Ende des Script aufzurufen:
Mit diesem Wissen könnte man jetzt einen schicken Stream Wrapper schreiben, der es erlaubt, entfernte Verzeichnisse z. B. so zu öffnen:
Wie man das macht, steht im PHP Handbuch. Oder ihr wartet auf den nächsten Blogeintrag, wo ich es als Praxistutorial zeige. 
Gruß,
Amica
Ein Problem bleibt: Die meisten Freigaben sind nur mit Benutzername und Kennwort erreichbar, aber auch das lässt sich bewerkstelligen.
Da die Funktionen "Netzlaufwerk verbinden" und "Netzlaufwerk trennen" auch von der Konsole aus zur Verfügung stehen, kann man exec benutzen, um diese Kommandos zu Beginn bzw. am Ende des Script aufzurufen:
Code:
net use \\server[\folder\...] password /user:domain\username
Code:
net use \\server[\folder\...] /delete
PHP-Code:
$dh = opendir("unc://TestUser:TestPwd@192.168.115.3/Fotos");
// oder
$text = file_get_contents("unc://TestUser:TestPwd@joerg-notebook/config/server.ini");

Gruß,
Amica
Kommentare 1
Kommentare
-
Veröffentlicht: 12-06-2010 um 23:33 von fireweasel
Trackbacks 0

















