Is_dir , Opendir und UNC PFad geht nicht
WernerK
- php
Hallo,
ich habe schon in den Manuals nachgeschaut. Es gab wohl ganz früher mal einen Bug bei PHP mit UNC PFaden. Ich habe jedoch PHP 5.3.1.
Ich möchte auf ein Netzwerkpfad zugreifen.
$Sharename = "\\\Win2008R2\\Testdir\\";
//$Sharename = "\\\\Win2008R2\\Testdir\\";
//$Sharename = "//Win2008R2/Testdir";
$dh = opendir($Sharename);
echo "<pre>\n";
var_dump($dh, error_get_last());
echo "\n</pre>";
Leider klappt das nicht.
Fehlermeldung:
Warning: opendir(\Win2008R2\Testdir) [function.opendir]: failed to open dir: No error in c:\xampp\include.inc.php on line 127
bool(false)
array(4) {
["type"]=>
int(2)
["message"]=>
string(116) "opendir(\Win2008R2\Testdir) [function.opendir]: failed to open dir: No error"
["file"]=>
string(57) "c:\xampp\include\include.inc.php"
["line"]=>
int(127)
}
Ich kann jedoch in windows vom gleich PC problemlos auf den Share zugreifen.
Die Freigabe wurde schon auf "Jeder" und Gast gesetzt.
Hat jemand eine Idee was der Grund sein könnte?
Gruss
Werner
Tach!
Ich möchte auf ein Netzwerkpfad zugreifen.
$Sharename = "\\Win2008R2\Testdir\";
//$Sharename = "\\Win2008R2\Testdir\";
Der Pfad lautet \rechner\share. Das heißt, du brauchst 2 Backslashes und dann noch einen, sowie je einen für weitere Pfadbestandteile. Die richtige Syntax dafür ist die zweite Variante. Je zwei Backslashes stehen für einen einzelnen, wenn du ""-Strings hast. Die erste Variante funktioniert zwar auch, aber nur weil PHP keine \W als Escape-Seqzuenz kennt und dann die beiden Zeichen einzeln nimmt. Ich würde hier trotzdem die "ordentliche" Variante nehmen, weil die immer funktioniert, auch wenn du ohne es zu beachten einen Rechnernamen beginnend mit Buchstaben aus 'nrtvef' verwenden willst.
Warning: opendir(\Win2008R2\Testdir) [function.opendir]: failed to open dir: No error in c:\xampp\include.inc.php on line 127
Da gibt es einen Kommentar im Handbuch zur Funktion opendir(), der zu dieser Meldung was von Berechtigungen erzählt.
Ich kann jedoch in windows vom gleich PC problemlos auf den Share zugreifen.
Da kommst du auch mit dem angemeldeten Benutzer, der (angenommenerweise) Apache vermutlich ohne einen solchen.
Die Freigabe wurde schon auf "Jeder" und Gast gesetzt.
"Jeder" sollte doch auch Gäste mit einschließen. Wie auch immer, es gibt ein Security-Log in Windows, zu erreichen über den EventViewer. Da kannst du nachschauen (auf dem vom Server, nicht dem vom Client) und eventuell hilfreichere Meldungen finden.
dedlfix.
Tach!
Die Freigabe wurde schon auf "Jeder" und Gast gesetzt.
Achja, neben den Berechtigungen der Freigabe zählen auch noch die Berechtigungen der einzelnen Dateien und Verzeichnisse. Das sind zwei getrennte Einstellungen.
dedlfix.