-3

URLの場合、このAPIリクエストを介してツイートをカウントしようとしています。

http://urls.api.twitter.com/1/urls/count.json?url=http://www.bbc.co.uk

これは(ブラウザで)次のJsonを返します。

{"count":216743,"url":"http:\/\/www.bbc.co.uk\/"}

応答を手動で解析できます。

$tweets = json_decode('{"count":216743,"url":"http:\/\/www.bbc.co.uk\/"}');
$this->set('tweets', $tweets->{'count'});

Jsonの代わりにURLを入力すると、データが要求されません。以下を機能させるにはどうすればよいですか?

$tweets = json_decode('http://urls.api.twitter.com/1/urls/count.json?url=http://www.bbc.co.uk');
$this->set('tweets', $tweets->{'count'});
4

2 に答える 2

5

json_decodeJSON文字列を取得することを期待しています。http://urls.api.twitter.com/1/urls/count.json?url=http://www.bbc.co.ukJSON文字列ではなく、URLです。json_decodeURLをフェッチしません。json_decode自分でURLを取得し、その結果を次の場所に渡す必要があります。

$json = file_get_contents('http://urls.api.twitter.com/1/urls/count.json?url=http://www.bbc.co.uk');
$tweets = json_decode($json);
于 2012-08-14T10:30:32.120 に答える
2

json_encode()URLに直接使用することはできません。最初にページのコンテンツを取得し(たとえば、-docu linkを使用file_get_contents次にそれをデコードしてみます。

$content = file_get_contents('http://urls.api.twitter.com/1/urls/count.json?url=http://www.bbc.co.uk');
$tweets = json_decode( $content );

// do your stuff
于 2012-08-14T10:30:48.627 に答える