【问题标题】:file_get_contents not working but file exists in browserfile_get_contents 不起作用,但文件存在于浏览器中
【发布时间】:2015-12-31 04:44:43
【问题描述】:

下面是我的代码,它似乎不起作用。

$addy = "http://steamcommunity.com/market/priceoverview/?currency=1&appid=730&market_hash_name=Tec-9%20%7C%20Isaac%20%28Field-Tested%29";
$price = json_decode(file_get_contents($addy));

$price 仍然是NULL,我收到以下错误

警告:file_get_contents(http://steamcommunity.com/market/priceoverview/?currency=1&appid=730&market_hash_name=Tec-9%20%7C%20Isaac%20%28Field-Tested%29):打开流失败:HTTP 请求失败! HTTP/1.0 429 未知...

但是,如果您在浏览器中访问网址,则该文件肯定存在http://steamcommunity.com/market/priceoverview/?currency=1&appid=730&market_hash_name=Tec-9%20%7C%20Isaac%20%28Field-Tested%29

我不认为这是安全问题,因为我也使用 CURL 进行了尝试。 PHP 对链接的处理方式与浏览器的处理方式不同吗?

【问题讨论】:

  • 请用 print_r($price); 检查数据在最后一行下方。
  • 它显示了正确的输出:stdClass Object ( [success] => 1 [lowest_price] => $0.21 [volume] => 1,422 [median_price] => $0.21 ) 你仍然得到错误吗?

标签: php


【解决方案1】:

请在下面的代码。

$addy = "https://steamcommunity.com/market/priceoverview/?currency=1&appid=730&market_hash_name=Tec-9%20%7C%20Isaac%20%28Field-Tested%29";
$pricefiledata = file_get_contents($addy);
$price = json_decode($pricefiledata);
echo "<pre>";
print_r($price);
echo "<br />";
echo "<br />Price --->".$price->lowest_price;

输出显示如下。

stdClass Object
(
    [success] => 1
    [lowest_price] => $0.21
    [volume] => 1,422
    [median_price] => $0.21
)
Price --->$0.21

【讨论】:

  • 我得到的只是价格--->
  • @Andrew 你在 print_r() 中得到了什么; ?
  • @Andrew 您在哪个服务器上尝试在本地或实时服务器中使用此代码?
  • 目前在线 - 直播。除了我上面粘贴的内容外,没有任何显示。即 $price 为空
  • @Andrew 你的意思是你得到空白数组,即 print_r($price);空白对吗?如果是,请尝试替换此行。我的答案中的 $addy 行。
【解决方案2】:

来自服务器的错误响应是 429。这是一个服务器端错误,它会阻止像我试图开发的脚本那样的脚本(实际上我曾试图请求很多,经常)。这就是脚本在本地工作的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-09
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 2015-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多