IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Récupération d'un fichier résultat de POST (API) [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Récupération d'un fichier résultat de POST (API)
    Bonjour,

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Code :
    $serveur = 'www.monurl.com';
    $script = '/dir/traitement.php';
    $fp = fsockopen($serveur, 80, $errno, $errstr, 30); // Ouverture d'une connexion sur le port 80 du serveur
    if (!$fp){
        echo 'et non!';
    }else{
    $data = 'login='.urlencode($login).'&pass='.urlencode($pass);
    if(count($vars) > 0){
     foreach($vars as $cle=>$value){
      $data .= '&'.$cle.'='.urlencode($value);
     }
    }
    $envoi  = "POST $script HTTP/1.1\r\n";
    $envoi .= "Host: $serveur\r\n";
    $envoi .= "Connection: Close\r\n";
    $envoi .= "Content-type: application/x-www-form-urlencoded\r\n";
    $envoi .= "Content-Length: ".strlen($data)."\r\n\r\n";
    $envoi .= $data."\r\n";
    $retour = "";
    fwrite($fp, $envoi);
    while (!feof($fp)) {
     $retour .= fgets($fp, 4096);
    }
    fclose($fp);
    return $retour;
    }
    Ca me retourne un fichier XML, et mon souci est que lorsque je fais une requete pour récupérer 5 lignes de resultats, ca marche sans souci, mais lorsqu'il y a plus de résultat, j'ai un 0 qui se glisse en fin de page de resultat...

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    [...]
    <element>
    <id>345260</id>
    <date><![CDATA[04-04-2010]]></date>
    <date_fin><![CDATA[04-04-2010]]></date_fin>
    <nom><![CDATA[Meaux]]></nom>
    </element>
    <element>
    <id>345261</id>
    <date><![CDATA[10-04-2010]]></date>
    <date_fin><![CDATA[10-04-2010]]></date_fin>
    <nom><![CDATA[Meaux]]></nom>
    </element>
    </reponse>
    0
    Coté serveur intérrogé il n'y a pas de souci, le problème vient donc de l'interprétation de la réponse.. (feof, fgets...)

    Une idée ? Merci !!

  2. #2
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Salut,
    c'est peut être fwrite, essais avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $f = fwrite($fp, $envoi);
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Merci pour ta réponse mais cela ne change rien..

  4. #4
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Trouvé !
    Finalement j'ai tout refais avec cURL et ca marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    	$data = 'login='.urlencode($login).'&pass='.urlencode($pass);
    	if(count($vars) > 0)
    	{
    		foreach($vars as $cle=>$value)
    		{
    			$data .= '&'.$cle.'='.urlencode($value);
    		}
    	}
     
    	$curl = curl_init();
     
    	curl_setopt($curl, CURLOPT_URL, $serveur.$script);
    	curl_setopt($curl, CURLOPT_POST, 1);
    	curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    	$page = curl_exec($curl);
    	curl_close($curl);
     
    	return $page;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Générer un fichier résultat avec sépateur ;
    Par soulryo dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 30/08/2005, 09h57
  2. [Servlet] Créer un fichier sur un poste distant
    Par JohnBlatt dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 07/05/2005, 18h51
  3. Nom du fichier résultat d'une requête...
    Par poca10 dans le forum Oracle
    Réponses: 14
    Dernier message: 12/10/2004, 15h43
  4. Réponses: 3
    Dernier message: 26/05/2004, 17h38
  5. Réponses: 4
    Dernier message: 05/06/2002, 12h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo