Recevoir les données HTTP au format XML

Eléphant du PHP | 89 Messages

15 août 2010, 16:49

Bonjour
J'essaye actuellement de modifier l'entête HTTP avec la librairie CURL pour recevoir des données bien structuré au format XML.
Mais je ne reçois pas de flux xml à part la réponse du serveur:
HTTP/1.1 100 Continue HTTP/1.1 200 OK Date: Sun, 15 Aug 2010 14:54:13 GMT Server: Apache Set-Cookie: PHPSESSID=e88ad4c2d0a0dbb9ceaee7ea79e12973; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Vary: Accept-Encoding Content-Length: 0 Connection: close Content-Type: text/html; charset=utf-8 http://uni19.ogame.fr/game/reg/login2.php

Voici mon code:
  public function auth(){
        curl_setopt($this->session, CURLOPT_HEADER         , 1);
        curl_setopt($this->session, CURLOPT_URL            , $this->site);
        curl_setopt($this->session, CURLOPT_POST           , true);
        curl_setopt($this->session, CURLOPT_POSTFIELDS     , $this->identification);
        curl_setopt($this->session, CURLOPT_COOKIEJAR      , realpath('cookie.txt'));
        curl_setopt($this->session, CURLOPT_COOKIESESSION  , true);
        curl_setopt($this->session, CURLOPT_FOLLOWLOCATION , true); 
        curl_setopt($this->session, CURLOPT_RETURNTRANSFER , true); 
        curl_setopt($this->session, CURLOPT_HTTPHEADER     , Array("Content-Type:application/xml")); 
    }
Array("Content-Type:application/xml")); 
Le content type est toujours text/html ... la modification de l'entête n'a rien donnée.
Merci

ViPHP
ViPHP | 5462 Messages

15 août 2010, 17:14

ca marche pas comme ca, tu va utiliser qu'elle extension XML derrière ?

Eléphant du PHP | 89 Messages

15 août 2010, 19:52

Heuu pour l'instant je me suis simplement logué sur le site ogame, en envoyant les données avec la méthode POST rien de plus ...

index.php
require_once 'ogame.php';

$bot                 = new Ogame ();
$bot->site           = 'xxxxxxxxxxxxxx';
$bot->identification = array(
             'v'           => xxx,
             'is_utf8'   => xxxx,
             'uni_url'   =>'xxxxxxxxxxxxxx',
             'login'      =>'xxxx',
             'pass'      =>'xxxx,);
$bot->startCurl();
$bot->auth();
echo htmlentities($bot->execute());
$bot->end();
ogame.php
<?php

/**
 * @author def
 * @copyright 2010
 */
 
 class Ogame{
    public 
    $site            = '',
    $identification  = '';
   
    private $session = '',
            $data    = '';
    
    
    public function __construct(){

        
    }
    
    public function startCurl(){
        $this->session = curl_init();       
    }
    
    public function auth(){
        
        curl_setopt($this->session, CURLOPT_HEADER              ,1);
        curl_setopt($this->session, CURLOPT_URL                    ,$this->site);
        curl_setopt($this->session, CURLOPT_POST                  ,true);
        curl_setopt($this->session, CURLOPT_POSTFIELDS        ,$this->identification);
        curl_setopt($this->session, CURLOPT_COOKIEJAR          ,realpath('cookie.txt'));
        curl_setopt($this->session, CURLOPT_COOKIESESSION   ,true);
        curl_setopt($this->session, CURLOPT_FOLLOWLOCATION ,true); 
        curl_setopt($this->session, CURLOPT_RETURNTRANSFER ,true); 
        curl_setopt($this->session, CURLOPT_HTTPHEADER       , Array("Content-Type:application/xml")); 
    }
    
    
    public function execute(){
         $this->data = curl_exec($this->session); 
         return $this->data;
    }

    public function getCurrentUrl(){
        $info               = curl_getinfo($this->session);
        $this->url          = $info['url'];
        return $this->url;
    }
   
    
    public function end(){
        curl_close($this->session);
    }
   
    
 }

?>

ViPHP
ViPHP | 5462 Messages

15 août 2010, 20:11

ensuite ? tu veux faire quoi derrière ? :wink:

Eléphant du PHP | 89 Messages

15 août 2010, 20:17

Dans un premier temps je veux récupérer les données $data de la fonction curl_exec en format xml, puis ensuite traité ces informations et choisir une action approprié en fonction des données. Je voudrais par la suite automatiser la tâche, tu l'a deviner de tout de façon. :mrgreen:
J'aimerais savoir si c'est possible de récupérer en format xml ...
Merci

ViPHP
ViPHP | 5462 Messages

15 août 2010, 20:38

ca dépend du doctype de ta page sois xhtml = xml, html = dom
avec DomDocument il gere les 2 donc pas de soucis
avec SimpleXML il faut convertir de DOM en XML (via DomDocument et simplexml_import_dom)

Eléphant du PHP | 89 Messages

15 août 2010, 20:44

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

+1 merci de ta réponse rapide :P