Languages

Reply to comment

travailler avec XML en http

De plus en plus la technologie XMl est utilisé pour l'échange de donnée, et même à travers des requètes HTTP . Ici , j'ai couplé php/xml pour interrogé un serveur, et récupérer par le socket du contenu XML . Il ne reste plus qu'à récupérer le XML renvoyé par le serveur distant, le parser (vérifier son intégrité) et le parcourir (pour récupérer les valeurs qu'on veut dans ce contenu). La récupération des valeur est bien sur des noeud du XMl que vous réceptionnez.

 

$serveurdistant  = 'www.exemple.com' ;             
$xml_parser = xml_parser_create();                
$resp = '' ;                
$fp = fsockopen($serveurdistant,8080);                
if (!$fp) {                    
        echo  $errstr." (".$errno.") ".$rc;
}else{
        $out = "GET / HTTP/1.1\r\n";
        $out .= "Host: ".$serveurdistant."\r\n";
        $out .= "Content-type: text/xml\r\n";   
        $out .= "Connection: Close\r\n\r\n";                        
        fwrite($fp, $out);                        
        while (!feof($fp)){
                $resp .= fgets($fp, 4096);
        }
        $tocut =  strpos ($resp, "\r\n\r\n" ) ;
        $resp = substr($resp,$tocut+4) ;
        echo('HTTP REQUEST THROUGH SOCKET :GETTING http://'.$serveurdistant.':8080/ ');
        // now analysing the XML response to get status through the http request .                        
        $parsing = xml_parse_into_struct($xml_parser,$resp,$vals,$index);                        
        if($parsing != 1){                                
                echo( 'parsing failed' );                       
        }                                   
        $status = array();                        
        foreach ($vals as $xml_elem) {                                
                if($xml_elem['tag'] == 'ACTION' ){                                        
                $rt = $xml_elem['attributes']['TYPE'] ;                                        
                $status[$rt] =  $xml_elem['level'].$xml_elem['value'];                                
        }                                
        if($xml_elem['tag'] == 'FAILURE' ){                                        
                $status['failure'] = $xml_elem['value']  ;                                
        }
}
»

Reply

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.