2012-05-09 20 views
0

posterousからユーザーのsite_idを取得しようとしています。このデータはユーザーのプロフィールのどこにもないようですが、FAQやヘルプやドキュメントにはこれを見つける方法が記載されていません。 私が見つけることができる唯一の方法は、APIを介してサイトのリストを要求することです。 これは私がやろうとしていることです.Jsonレスポンス、そして実際にはユーザーが持っているサイトのsite_idが返されますそこにposterousがあり、これを出力したいだけです。posterous site_id、php(preg_matchまたはjson_decode?)= no joy

まず私は、私は何を取得

$siteid = preg_match('"site_id": \d+', $result); 
echo $siteid; 

($結果はJSONレスポンスである場合)で試してみました。

それから私は

json_decode($result); 
echo $result->site_id; 

私はまだ何を取得してみました。

私がするpreg_matchやjson_decodeのいずれかで、このデータを抽出することはできませんなぜ私は、JSONレスポンス($結果)で、

"site_id": $somenumber; 

を見ることができますか?別のより良い方法がありますか?

私の完全なコードはhttp://tonybaldwin.me/paste/index.php?3u

+0

あなたはAPIからの回答を投稿できますか? – Jeroen

+1

あなたの 'preg_match()'呼び出しに問題があります。まず、[デリミタ](http://php.net/manual/en/regexp.reference.delimiters.php)がありません。また、関数は一致したテキストの数ではなく、一致した回数(1または0)を返します。キャプチャサブパターンでは、 'preg_match( '/" site_id ":(\ d +)/'、$ result、$ matches);のように動作します。 $ siteid = $ matches [1]; ' – Wiseguy

+0

返されたjsonは次のようになります: ダーン...あまりにも大きすぎてコメントに投稿できません、pastebinned here:http://tonybaldwin.me/paste/index.php?7K – tonybaldwin

答えて

0

(ご想像のとおり)のPosterousリスト・オブ・サイトAPIは、リストを返すのマッピングで貼り付けられます。従って、あなたがする必要があるのは、リストの正しい項目を選んでから、それをidというキーで読むことです。

$result = json_decode($response); 
$first_result = $result[0]; 
$first_result_id = $first_result["id"]; 
echo $first_result_id;