2011-05-10 4 views
0

Donc, je suis nouveau à travailler avec API et PHP, alors faites-moi confiance. J'essaye de frapper une API pour m'authentifier dans le site par l'intermédiaire des paramètres de GET (comme suggéré dans la documentation d'API). J'essaie d'utiliser file_get_contents() pour retourner le jeton d'authentification qu'il retourne. Une redirection vers l'URL génère le jeton au format XML. Toutefois, lorsque je fais ce qui suit, il renvoie une chaîne vide. Comment puis-je retourner la sortie XML complète?file_get_contents() renvoie une chaîne vide lors de l'authentification, sinon bien

$token = file_get_contents('http://example.com/api.asp?cmd=logon&[email protected]&[email protected]'); 
var_dump($token); 

je reçois la sortie suivante:

string(116) "" 

Toutes les idées sur ce que je fais mal?

+1

ce qui est VD? Qu'est-ce que ça fait? – Rob

+0

variable dumping $ token – rybo

+0

Quel format sont les données renvoyées par l'API, JSON, XML ?? Que donne 'print_r ($ token)'? –

Répondre

1

Essayez de faire:

$token = str_replace("<", "&lt;", $token); 
$token = str_replace(">", "&gt;", $token); 

vd($token); 

Cela se produit parce que votre navigateur interprète le XML que vous lisez en HTML et en lisant le code XML sous forme de balises. (Vous pouvez dire que la chaîne n'est pas vide car vd, que je suppose être un alias pour var_dump vous indique que la longueur de la chaîne est 116.) Remplacer les < et > avec leurs entités HTML valides devrait résoudre cela.

+1

ou simplement en remplaçant les <... ne peut pas fermer une étiquette qui n'est jamais ouverte. –

+0

merci. fonctionne très bien – rybo

0

Assumning l'API XML est de retour, vous pouvez utiliser SimpleXML en PHP pour analyser directement le fichier:

<?php 
$token = simplexml_load_file('http://example.com/api.asp?cmd=logon&[email protected]&[email protected]'); 
vd($token); 
?> 
Questions connexes