<?php
    
// pouziti tridy HTTP_Server budeme ilustrovat na komunikaci s WebDAV serverem.
    // Klient chce pomoci prikazu PROPFIND zjistit vsechny vlastnosti spojene s kolekci /moje/kolekce/
    
    // nacteni tridy HTTP_Server
    
require_once( "http_server.php" );
    
    
// vytvorime novou instanci
    
$h = new HTTP_Server( "localhost" );
    
    
// pripojime se k serveru
    
$h->connect();
    
    
// vytvorime XML dokument, ktery odesleme spolu s dotazem
    
$xml = "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>".
            
"<D:propfind xmlns:D=\"DAV:\">".
            
"    <D:allprop/>".
            
"</D:propfind>";
    
    
// ulozime XML dokument do dotazu
    // parametry jsou: obsah tela dotazu a MIME typ specifikujici obsah dotazu
    // pro XML dokument muze byt pouzity MIME typ bud text/xml nebo application/xml
    
$h->setClientBody( $xml, "text/xml" );
    
    
// vytvorime hlavicku Depth (hodnota 0 rika, ze chceme pouze informace o kolekci, nikoli o jejich potomcich)
    
$h->setHeader( "Depth", 0 );
    
    
// odesleme dotaz PROPFIND na kolekci, ktera je urcena adresou /moje/kolekce/
    
$h->request( "PROPFIND", "/moje/kolekce/" );
    
    
// pockame na odpoved
    
$h->response();
    
    
// uzavreme spojeni se serverem
    
$h->close();
    
    
// zjistime hodnotu stavoveho kodu odpovedi
    
$status = $h->getStatus();
    
    
// pokud je stavovy kod 207 (server vratil XML dokument tvorici telo dotazu)
    
if ( $status["code"] == 207 )
    {
        
// ziskame telo (XML dokument) odpovedi
        
$body = $h->getServerBody();
        
        
// zjistime hodnotu hlavicky Server
        
$server = $h->headerValue( "Server" );
        
        
// vytiskneme pozadovane informace
        
echo "Vse probehlo v poradku a server (".$server.") vratil nasledujici XML dokument.<br>".nl2br( htmlSpecialChars( $body ) );
    }
// if
    
else
        
// v pripade chyby vytiskneme stavovy kod a text, ktery server zaslal v hlavicce odpovedi
        
echo "Neco selhalo!<br>Stavovy kod: ".$status["code"]."<br>Text: ".$status["phrase"]."<br>Server pouziva verzi ".$status["version"];
?>