ですから、私には非常に単純な問題のように見えるものがありますが、コーディングの知識が不足している私の人生では、それを理解することはできません。誤称を許してください!そのため、JSON文字列を含む署名付きリクエストを含むページ(Facebookページ)に向かうURLがあります。そのJSON文字列を取得して、その特定の部分だけを抽出する必要があります。現在、URLのフォーマットを制御することはできません。
それが行くページに私は次のコードを持っています:
<?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.
}
?>
これは正常に機能し、echo $ obj ['app_data']; 印刷:{q: "id_src = abc123456789"、}
私にとって、それ自体はJSON文字列であるため、その上でjson_decodeを実行してから、id_src=abc123456789を出力できると思いました。私はこのようにそれを試しました:
$appdata = $obj['app_data'];
$idcode = json_decode($appdata,true);
その後にecho$idcode ['q']が続きますが、これは1つの中括弧を出力するだけです。いろいろなバリエーション、''マークの削除、trueの削除などを試しました。
私の最終目標は、id_src部分ではなく、abc123456789値を抽出することです。次の数日でそれを理解する可能性が低いので、私はただ尋ねる方がおそらく速いと思いました。
すべての助けをありがとう!
編集:$jsonのスニペットが追加されました。エコー$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値の後のコンマでしょうか?