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

Mary-Kate Olsen
リリース: 2024-10-30 18:25:30
オリジナル
853 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!