[英]fopen() returns error: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
以下代码产生了我在标题中所述的错误:
$authkey = "XXXXXXXXXXX";
if (!isset($_SESSION["steamid"])) {
$handle = fopen("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=" . $authkey . "&steamids=" . $uid, "r");
$content = stream_get_contents($handle);
$stdclass = json_decode($content);
//var_dump($stdclass);
$data = get_object_vars($stdclass->response->players[0]);
foreach ($data as $key => $value) {
$_SESSION[$key] = $value;
}
我在这里也阅读了关于stackoverflow的其他问题,但都没有真正的解决方案。 我发布的代码是在某种登录过程中调用的函数中。 如果我将代码放在文档外部,然后使用Web浏览器打开该文档,则不会出现错误。 另外,该代码在我的本地计算机上也有效。 但是在我的服务器上出现错误。
我的本地计算机使用php5运行ubuntu 12.04,我的外部服务器使用php5运行ubuntu 8.04。 allow_url_fopen为“开”。 任何帮助都会很棒。
fopen不允许默认打开远程位置。 一种更稳定的方法是使用curl:
$c = curl_init( sprintf("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=%s&steamids=%s" , $authkey , $uid) );
curl_setopt( $c , CURLOPT_RETURNTRANSFER , true );
$stdClass = json_decode( curl_exec( $c ) );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.