質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1361閲覧

phpでFB APIからJSONを受取り欲しい要素の数値だけを抜き出したい。

kim_owl

総合スコア13

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/11/18 07:39

###前提・実現したいこと
PHPを使ってFacebookのAPIを叩き、JSONを返し、JSONから欲しい情報だけを抜き出したいと考えています。
要素が2つあるのですが、下の'share_count'の数値だけが欲しいのですが。
色々試しましたが、うまく行きません。
何か解決策を教えていただけないでしょうか。

###発生している問題・エラーメッセージ

###該当のソースコード

<?php $FBapitoken = "MyApiToken"; $FBapiurl = "https://graph.facebook.com/v2.7/?access_token=".$FBapitoken."&id=https://liginc.co.jp/323128"; $FB_json = @file_get_contents($FBapiurl); $FB_ret = json_decode($FB_json, true); if(isset($FB_ret['share'])){ foreach ($FB_ret['share'] as $key =>$value) { echo $key."=>".$value."<br>\n"; } }else{ echo "FB:0"; }
結果 comment_count=>0 share_count=>142
#JSON { "og_object": { "id": "1376870685688883", "description": "\u3044\u3044\u30aa\u30d5\u30a3\u30b9\u652f\u914d\u4eba\u306e\u52e2\u53e4\u53e3\u3067\u3059\u3002 \u4eca\u56de\u306f\u5bae\u5d0e\u770c\u306e\u65b0\u5bcc\u753a\u3068\u3044\u3046\u753a\u306b\u3001\u304a\u3044\u3057\u3044\u98df\u3079\u7269\u304c\u3042\u308b\u3068\u805e\u304d\u3064\u3051\u3066\u53d6\u6750\u306b\u3084\u3063\u3066\u307e\u3044\u308a\u307e\u3057\u305f\u3002 \u672c\u5f53\u306b\u65b0\u5bcc\u753a\u306e\u98df\u3079\u7269\u306f\u3001\u304a\u3044\u3057\u3044\u306e\u3067\u3057\u3087\u3046\u304b\uff1f \u00a0 \u5bae\u5d0e\u3068\u3044\u3048\u3070\u30de\u30f3\u30b4\u30fc\u3067\u3059\u3088\u306d\u3002 \u3068\u308a\u3042\u3048\u305a\u30de\u30f3\u30b4\u30fc\u30a2\u30a4\u30b9\u30af\u30ea\u30fc\u30e0\u3092\u8cb7\u3063\u3066\u307f\u307e\u3057\u305f\u3002 \u00a0 \u3082\u3046\u590f\u3067\u3082\u306a\u3044\u306e\u306b\u3001\u3069\u3046", "title": "\u3010\u307f\u3093\u306a\u306b\u4f1d\u3048\u305f\u3044\u3011\u5bae\u5d0e\u770c\u65b0\u5bcc\u753a\u306f\u65e5\u672c\u4e00\u306e\u304a\u8336\u3068\u65e5\u672c\u4e00\u306e\u725b\u3068\u30a6\u30ca\u30ae\u3068\u5730\u9d8f\u304c\u304a\u3044\u3057\u3044\u3093\u3067\u3059\uff01 | \u682a\u5f0f\u4f1a\u793eLIG", "type": "article", "updated_time": "2016-11-18T06:32:57+0000" }, "share": { "comment_count": 0, "share_count": 140 }, "id": "https://liginc.co.jp/323128" }

###試したこと
課題に対してアプローチしたことを記載してください
foreach以外の関数を使うべきなのか、色々と悩んでいるのですが、うまく行きません。
最悪、2つの数値を足してもいいと考えたのですが、それもうまく行きません。
ヒントなどいただけるとうれしいです。

###補足情報(言語/FW/ツール等のバージョンなど)
php(最新)
cloud9で構築してます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

$keyの値が"share_count"のときだけ処理すればいいのでは?

PHP

1 foreach ($FB_ret['share'] as $key =>$value) { 2 if ($key == "share_count") { 3 echo $key."=>".$value."<br>\n"; 4 } 5 }

投稿2016/11/18 07:58

Y.H.

総合スコア7914

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kim_owl

2016/11/18 08:13

解決しました!本当にありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問