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'] ;
}
}
