file_get_contents()在进行身份验证时返回一个空字符串,否则很好

时间:2011-05-10 18:45:53

标签: php api fogbugz

所以,我刚开始使用API​​和PHP,所以请耐心等待。我正试图通过GET参数(如API文档中的建议)访问API以对网站进行身份验证。我正在尝试使用file_get_contents()来返回它返回的身份验证令牌。重定向到URL会以XML格式输出令牌。

但是,当我执行以下操作时,它会返回一个空字符串。如何返回完整的XML输出?

$token = file_get_contents('http://example.com/api.asp?cmd=logon&email=xxx@something.com&password=s0mep@SSword');
var_dump($token);

我得到以下输出:

string(116) ""

关于我做错了什么的想法?

2 个答案:

答案 0 :(得分:1)

尝试做:

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

vd($token);

这是因为您的浏览器正在将您正在阅读的XML解释为HTML并将XML作为标记读取。 (你可以告诉字符串不是空的因为vd,我假设它是var_dump的别名,告诉你字符串的长度为116。)替换<>及其有效的HTML实体应该解决这个问题。

答案 1 :(得分:0)

假设API返回XML,您可以使用PHP中的SimpleXML直接解析文件:

 <?php
 $token = simplexml_load_file('http://example.com/api.asp?cmd=logon&email=xxx@something.com&password=s0mep@SSword');
 vd($token);
 ?>