Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengekstrak JSONP Resultset dalam PHP dengan jsonp_decode()?

Bagaimana untuk mengekstrak JSONP Resultset dalam PHP dengan jsonp_decode()?

Patricia Arquette
Patricia Arquetteasal
2024-10-30 11:10:53454semak imbas

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

Mengekstrak JSONP Resultset dalam PHP: Menyahkod dengan jsonp_decode()

Untuk mengakses data yang dikembalikan daripada URL seperti yang anda berikan, anda boleh menggunakan fungsi jsonp_decode() PHP untuk mengekstrak set hasil JSONP. JSONP ialah format yang membenamkan data JSON dalam panggilan fungsi JavaScript.

Pelaksanaan:

  1. Strip Nama Fungsi: Alih keluar nama fungsi (dan kurungan) yang mengelilingi data JSON.
  2. Gunakan jsonp_decode() Fungsi: Parsing data JSON yang diekstrak menggunakan jsonp_decode(). Sintaksnya ialah:

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

Fungsi jsonp_decode() tersuai:

Fungsi jsonp_decode() tersuai berikut boleh mengendalikan respons 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>

Penggunaan:

<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>

DEMO:

Contoh ini menunjukkan cara untuk mendapatkan dan memaparkan simbol yang dicadangkan dan nama daripada 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>

Atas ialah kandungan terperinci Bagaimana untuk mengekstrak JSONP Resultset dalam PHP dengan jsonp_decode()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn