ホームページ  >  記事  >  バックエンド開発  >  PHP で JSONP 結果セットを抽出するにはどうすればよいですか?

PHP で JSONP 結果セットを抽出するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-30 18:25:30854ブラウズ

How to Extract JSONP Resultset in PHP?

PHP での JSONP 結果セットの抽出

概要

指定されたタスクには、URL からのデータの取得と解析が含まれます。 JSONP (パディング付き JSON) 応答。 PHP は、このような応答を効果的に処理する機能を提供します。

PHP 実装

JSONP 応答は、JSON ペイロードの周囲にラップされた JavaScript コードで構成されます。実際の JSON を抽出するには、応答の先頭からコールバック関数名と括弧を削除します。その後、PHP 関数 json_decode() を使用して、JSON を解析して連想配列またはオブジェクトにできます。

JSONP デコード用のカスタム関数

便宜上、 jsonp_decode() という名前のカスタム関数を定義できます:

<code class="php">function jsonp_decode($jsonp, $assoc = false) { // PHP 5.3 adds depth as third parameter to json_decode
    if($jsonp[0] !== '[' &amp;&amp; $jsonp[0] !== '{') { // we have JSONP
       $jsonp = substr($jsonp, strpos($jsonp, '('));
    }
    return json_decode(trim($jsonp,'();'), $assoc);
}</code>

使用法

このカスタム関数を使用すると、JSONP データを次のように抽出できます:

<code class="php">$data = jsonp_decode($response);</code>

提供されている JSONP 応答の例を考えてみましょう:

YAHOO.Finance.SymbolSuggest.ssCallback({"ResultSet":{"Query":"yahoo","Result":[{"symbol":"YHOO","name": "Yahoo! Inc.","exch": "NMS","type": "S","exchDisp":"NASDAQ","typeDisp":"Equity"}...]}})

jsonp_decode() 関数の使用:

<code class="php">$data = jsonp_decode($response);
$query = $data['ResultSet']['Query'];
foreach ($data['ResultSet']['Result'] as $result) {
    echo "Symbol: ".$result['symbol']." - Name: ".$result['name']." - Exchange: ".$result['exch']."\n";
}</code>

このコードは、シンボル、名前とともにクエリ文字列を抽出し、JSONP 応答から情報を交換します。

以上がPHP で JSONP 結果セットを抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。