0

我正在尝试从 json 编码页面中获取一些信息,但是在将值分配给变量 $data 时收到 HTTP/1.1 501 Method Not Implemented 错误

   if(isset($_GET['xblaccount'])) {
        $gamertag = htmlspecialchars(strip_tags($_GET['xblaccount']));
        $url = 'http://www.xboxleaders.com/api/profile.json?gamertag=' . urlencode($gamertag);
        $data = file_get_contents($url);
   }

我也试过

   $gamertag = 'kfj32j8fj23f';

并收到相同的错误

4

1 回答 1

3

这是一个有趣的问题,因为如果您使用实际帐户名(例如或) ,代码确实有效。Stallionh83Major Nelson

发现这一点后,我检查了浏览器 (FF) 中的标头,该标头也返回了 501 响应标头。因此,我假设这是非帐户的服务器端响应。

考虑到这一点,我建议将您的代码编辑为:

if(isset($_GET['xblaccount'])) {
    $gamertag = htmlspecialchars(strip_tags($_GET['xblaccount']));
    $url = 'http://www.xboxleaders.com/api/profile.json?gamertag=' . urlencode($gamertag);
    $data = @file_get_contents($url); // @ to suppress the warning
    if($data){
        //Account exists...
    }
    else{
        //Account doesn't exist...
    }
}

$data如果帐户不存在则返回FALSE,否则返回JSON字符串。

于 2013-09-29T00:22:23.903 回答