Mailinglisten-Archive |
Hallo zusammen, ich will eigentlich nur prüfen, ob eine Datei existiert, da diese aber nicht nur im Dateisystem, sondern auch im Web liegen kann, benutze ich fopen und prüfe den Rückgabewert. Das klappt bei URLs auch prima, nicht aber bei Dateien im lokalen Dateisystem (Linux, SMB-Share auf NTFS-Partition). Ich versuche bspw.: $url = '/mnt/go/Werbung\,\ PR\,\ Internet\ \(8027\)/Werbung/Steckbriefe/Qualitative\ Methoden/Aktuellste\ Fassung\ Steckbrief\ Qualitative\ Methoden.doc' (für die Namen und Pfade kann ich nichts :-) $fp = fopen( $url, "rb"); Der Filepointer ist immer "false". Ein "less" auf die obige URL auf der Shell geht aber, die Datei existiert also. Ich mache das über PHP-CLI, safe_mode ist off und open_basedir ist nicht gesetzt. Die Umwandlung des Pfads mache ich selbst mit regulären Ausdrücken, da escapeshellcmd() nicht alle Zeichen umzuwandeln scheint, die escaped werden müßten. Jedenfalls habe ich auch $url = escapeshellcmd($url); probiert, das klappt aber auch nicht. Auch gar kein Escape zu machen hat nicht geholfen :( Sieht einer was ich falsch mache? Oder muss ein Pfad für PHP anders aufbereitet werden als für die Shell (bash)? Oder liegt es evtl. daran, dass es ja um ein SMB-Share geht, und ich müßte sowas wie smb://Werbung\, ... schreiben? Der Mountpunkt ist /mnt/go Da ich nur zum Lesen öffnen, sollten doch Leserechte für die Gruppe others ausreichen, oder? Verwirrte Grüße André
php::bar PHP Wiki - Listenarchive