【问题标题】:$response = file_get_contents($request) returns false [duplicate]$response = file_get_contents($request) 返回 false [重复]
【发布时间】:2013-11-25 18:57:50
【问题描述】:

我正在尝试获取带有 url 的 XML 文件:

$request="http://www.example.com/server.php?q=showphonenumbers";
$response = file_get_contents($request);

如果我尝试另一个请求,它会显示,但不知何故这会返回 false。

var_dump($response); 显示:字符串(8334)“假”

文件如下所示:

<?xml version="1.0"?>
<!DOCTYPE CallOverview>
<CallOverview>
<Calls Count="46">
<Call CallType="GeoCall" Customer="this account" StartTime="2013-11-22 18:58:07 (UTC)" Destination="+1...." Duration="00:23:40"/>
<Call CallType="PSTNOut" Customer="this account" StartTime="2013-11-15 16:48:52 (UTC)" Destination="+1...." Duration="00:00:04"/>
.
.
.
</Calls>
<MoreData>False</MoreData>
</CallOverview>

moredata 的最后一个 False 可能是唯一显示的内容还是文件不可读?

【问题讨论】:

  • 它是 XML,您的浏览器正在尝试渲染它。在浏览器中输入view sourcestring (8334) 在你的 vardump 中应该是一个线索,表明“不仅仅是满足于眼睛”

标签: php xml xml-parsing file-get-contents


【解决方案1】:

在浏览器上,因为你没有放echo '&lt;pre&gt;';,浏览器试图将xml渲染成html,所以只有&lt;MoreData&gt;False&lt;/MoreData&gt;被认为是文本并显示出来。

如果您查看源代码或通过 cli 运行它,您会看到您的内容在那里。

您也可以使用header("Content-type: text/plain");

【讨论】:

  • 你是对的!如果我点击查看源代码,我会看到数据。
【解决方案2】:

也许是因为你没有把http://放在www.之前。

$request="www.example.com/server.php?q=showphonenumbers";

【讨论】:

    猜你喜欢
    • 2013-01-25
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    • 1970-01-01
    • 1970-01-01
    • 2020-02-10
    • 2014-04-24
    • 1970-01-01
    相关资源
    最近更新 更多