PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : HTTP-PROPFIND-Methode mit PHP / Webdav


waltraud28
31.01.2008, 10:50:38
Hallo,

ich möchte aus einem PHP-Skript mit einem PROPFIND-Request die Metadaten des Inhaltes meines Webdav-Laufwerkes anzeigen lassen.
Nachdem ich schon alle Varianten ausprobiert habe, die mir eingefallen sind, wird das Skript nach der maximal möglichen Ausführ-Zeit beendet.
Die einzige Nachricht, die ich im Browser sehe, ist die Fehlermeldung "Maximum execution time of 5 seconds exceeded ......" - sonst nichts.

Das Skript sieht momentan so aus:

$content = "PROPFIND /files/ HTTP/1.1 \r\n";
$content .= "Host: localhost \r\n";
$content .= "Depth: 0\r\n";
$content .= "Content-Type: application/xml; charset=\"utf-8\"\r\n";
$content .= "Content-Length: 100\r\n";
$content .= "Connection:keep-alive\r\n";
$content .= "\r\n";
$content .= "<?xml version=\"1.0\" encoding=\"utf-8\">";
$content .= "<propfind xmlns=\"DAV:\">";
$content .= " <propname/>";
$content .= "</propfind>";


$fp = fsockopen("localhost", 80, $errno, $errstr, 1);

if(!$fp)
{
echo "$errno -> $errstr<br>";
}

else
{
fwrite($fp, $content);

while(!feof($fp))
{
echo fread($fp, 10);
}

fclose($fp);


Die Webdav-Konfiguration im Webserver sieht so aus:

# Adding WebDAV-Support

# Adding Entry for Lock database
DavLockDB conf/DavLock

# Release WebDav-Paths
Alias /files "D:/Webdav"

<Directory "D:/Webdav">
AllowOverride All
Dav On
ForceType text/plain
Options Indexes

# Authentifizierung fuer bestimmte Nutzer
#AuthType Basic
#AuthName "WebDav-Laufwerk"
#AuthUserFile "D:/Webdav/.htusers"
#Require user test

#SSLRequireSSL
</Directory>

Ich verwende den Apache-Webserver 2.0.x und PHP 5.2.0.

Hat jemand eine Idee dazu, woran der Fehler liegen könnte?

Gruß
Michael

bazubi
04.02.2008, 13:39:56
Mach die Abfrage mal mit einem normalen Client und lass dabei einen Sniffer mitlaufen. Scheinbar bleibt dein Script in der while-Schleife hängen. Irgendwas sorgt dafür dass das EOF nicht richtig erkannt wird.