0

さて、私が達成しようとしているのは、YouTube API を使用していくつかのフィードを取得することです。フィードは json-c でエンコードされています。そこで、file_get_contents メソッドを使用して json フィード URL を文字列に変換し、json でデコードしてみました。コードスニペットは次のとおりです。

$feedURL = "https://gdata.youtube.com/feeds/api/videos?q=surfing&v=2&alt=jsonc";
$json = file_get_contents($feedURL,0,null,null);
$result = json_decode($json, true);
echo $result;
$id = $result->{'data'}->{'items'}[0]->{'id'};
echo "The video id is: ".$id;

しかし、私はこの愚かなエラー警告を受け取ります: file_get_contents(https://gdata.youtube.com/feeds/api/videos?q=surfing&v=2&alt=jsonc) [function.file-get-contents]: failed to open stream: Connection 13 行目の /opt/lampp/htdocs/date.php で拒否されました Notice: 16 行目の /opt/lampp/htdocs/date.php で非オブジェクトのプロパティを取得しようとしています 通知: 非オブジェクトのプロパティを取得しようとしています/opt/lampp/htdocs/date.php 行 16 注意: 行 16 で /opt/lampp/htdocs/date.php の非オブジェクトのプロパティを取得しようとしています

ファイルの名前はdate.phpで、プロキシサーバーの背後にあるLinuxマシンのlocalhostで実行しています。

接続が拒否されたということは、IPの競合か何かがある可能性があることを示唆していると思います。知らない。誰かがこれを修正するのを手伝ってくれませんか?

4

3 に答える 3

0

接続を閉じているプロキシのようです。file_get_contentsを使用したプロキシ経由のアクセスの問題に対する答えはすでにあります

プロキシの背後にあるfile_get_contents?

于 2012-04-09T11:00:25.847 に答える
0

試す:


$url = 'http://www';

 $proxy = 'tcp://xxx:8080';

 $context = array(
    'http' => array(
        'proxy' => $proxy,
        'request_fulluri' => True,
        ),
    );

 $context = stream_context_create($context);

 $body = file_get_contents($url, False, $context);

foreach($result["data"]["items"] as $val) {
  echo $val["id"]."<br/>";
}
于 2012-04-09T10:58:43.310 に答える