file_get_contents() 验证时返回空字符串,否则很好
所以,我对使用 API 和 PHP 还很陌生,所以请耐心等待。我正在尝试使用 API 通过 GET 参数(如 API 文档中的建议)对站点进行身份验证。我正在尝试使用 file_get_contents() 返回它返回的身份验证令牌。重定向到 URL 会以 XML 格式输出令牌。
但是,当我执行以下操作时,它返回一个空字符串。如何返回完整的 XML 输出?
$token = file_get_contents('http://example.com/api.asp?cmd=logon&[email protected]&password=s0mep@SSword');
var_dump($token);
我得到以下输出:
string(116) ""
关于我做错了什么有什么想法吗?
So, I'm new to working with API's and PHP, so bear with me. I'm trying to hit an API to authenticate into the site via GET parameters (as suggested in the API documentation). I'm trying to use file_get_contents() to return the authentication token it returns. A redirect to the URL outputs the token in XML format.
However, when I do the following, it returns an empty string. How can I return the full XML output?
$token = file_get_contents('http://example.com/api.asp?cmd=logon&[email protected]&password=s0mep@SSword');
var_dump($token);
I get the following output:
string(116) ""
Any ideas about what I'm doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试这样做:
发生这种情况是因为您的浏览器将您正在读取的 XML 解释为 HTML 并将 XML 读取为标签。 (您可以看出该字符串不为空,因为
vd
(我假设它是var_dump
的别名)告诉您该字符串的长度为116
.) 将<
和>
替换为其有效的 HTML 实体应该可以解决该问题。Try doing:
This is occurring because your browser is interpreting the XML you're reading as HTML and reading the XML as tags. (You can tell the string is not empty because
vd
, which I'm assuming is an alias forvar_dump
tells you the string's length is116
.) Replacing the<
's and>
's with their valid HTML entities should resolve that.假设API返回XML,您可以在PHP中使用 SimpleXML 直接解析文件:
Assumning the API is returning XML, you can use SimpleXML in PHP to directly parse the file: