ホームページ  >  記事  >  バックエンド開発  >  PHP で jsonp_decode() を使用して JSONP 結果セットを抽出する方法

PHP で jsonp_decode() を使用して JSONP 結果セットを抽出する方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-30 11:10:53455ブラウズ

How to Extract JSONP Resultset in PHP with jsonp_decode()?

PHP での JSONP 結果セットの抽出: jsonp_decode() によるデコード

指定した URL のような URL から返されたデータにアクセスするには、次のようにします。 PHP の jsonp_decode() 関数を利用して JSONP 結果セットを抽出できます。 JSONP は、JavaScript 関数呼び出し内に JSON データを埋め込む形式です。

実装:

  1. 関数名の削除: JSON データを囲む関数名 (および括弧)。
  2. jsonp_decode() を使用する 関数: jsonp_decode() を使用して、抽出された JSON データを解析します。構文は次のとおりです:

    <code class="php">$data = jsonp_decode($jsonString, $assoc = false);</code>

カスタム jsonp_decode() 関数:

次のカスタム jsonp_decode() 関数は JSONP 応答を処理できます。

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

使用法:

<code class="php">$yahooSS = "http://d.yimg.com/autoc.finance.yahoo.com/autoc?query=yahoo&amp;callback=YAHOO.Finance.SymbolSuggest.ssCallback";

$yss = fopen($yahooSS,"r");
$data = jsonp_decode($response);

// Accessing the result 
foreach ($data->ResultSet->Result as $result) {
    echo $result->symbol . " - " . $result->name . "\n";
}</code>

デモ:

この例は、提案されたシンボルを取得して表示する方法を示します。 Yahoo Finance Symbol Suggest API からの名前:

<code class="php"><?php

// Get JSONP response
$yahooSS = "http://d.yimg.com/autoc.finance.yahoo.com/autoc?query=yahoo&callback=YAHOO.Finance.SymbolSuggest.ssCallback";
$result = file_get_contents($yahooSS);

// Decode JSONP
$data = jsonp_decode($result);

// Process results
echo "<table>";
echo "<tr><th>Symbol</th><th>Name</th></tr>";
foreach ($data->ResultSet->Result as $result) {
    echo "<tr><td>" . $result->symbol . "</td><td>" . $result->name . "</td></tr>";
}
echo "</table>";

?></code>

以上がPHP で jsonp_decode() を使用して JSONP 結果セットを抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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