私は非常に単純な問題であるように見えますが、コーディング知識が不足している私の人生のために、私はそれを理解できません。間違った言い方を許してください!だから、JSON文字列で署名されたリクエスト(Facebookページ)を含むページへのURL見出しがあります。そのJSON文字列を取得し、その特定の部分だけを抽出する必要があります。私は現時点でURLの書式設定を制御できません。それは私が次のコードを持っているに行くページで PHPでJSON文字列から特定の値を抽出する
:<?php
$signed_request = $_REQUEST['signed_request']; // Get the POST signed_request variable.
if(isset($signed_request)) // Determine if signed_request is blank.
{
$pre = explode('.',$signed_request); // Get the part of the signed_request we need.
$json = base64_decode($pre['1']); // Base64 Decode signed_request making it JSON.
$obj = json_decode($json,true); // Split the JSON into arrays.
echo $obj['app_data'];
}
else
{
die('No signed request avaliable.'); //If there is no signed_request, stop processing script.
}
?>
正常に動作、および$ OBJ [ 'App_Dataに']をエコー; print:{q: "id_src = abc123456789"、}
私自身、それはJSON文字列なので、json_decodeを実行してからid_src = abc123456789を印刷することができたと思いました。
$appdata = $obj['app_data'];
$idcode = json_decode($appdata,true);
エコー$のIDCODE [「Q」]に続い
、それだけで一つの中括弧を出力します。私はこのようなことを試してみました。私は様々なバリエーション、マークの除去、真の除去などを試みました。私の最終的な目標は、id_srcではなく、abc123456789の値を抽出することです。私は次の数日でそれを理解することはまずないので、おそらくちょうど尋ねるほうが早いと考えました。
ヘルプありがとうございました!
EDIT:$ jsonのスニペットが追加されました。 echo $ json;次を出力します
{"algorithm":"HMAC-SHA256","app_data":"{q:\"id_src=abc123456789\",}","issued_at":1333500860,"page":{"id":"380641958713853","liked":false,"admin":true},"user":{"country":"nz","locale":"en_GB","age":{"min":21}}}
問題の原因となるid_src値の後にコンマが入りますか?
あなたは 'BASE64_DECODE()'それの後に返されるJSONのスニペットを投稿することができますに? JSONがフェッチ中のどこかで壊れている可能性がありますが、スニペットがないとわからないことがあります。 – Bojangles
編集されたスニペットが追加されました – Dave