Heim > Backend-Entwicklung > PHP-Tutorial > Wie extrahiere ich JSONP Resultset in PHP mit jsonp_decode()?

Wie extrahiere ich JSONP Resultset in PHP mit jsonp_decode()?

Patricia Arquette
Freigeben: 2024-10-30 11:10:53
Original
504 Leute haben es durchsucht

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

JSONP-Ergebnismenge in PHP extrahieren: Dekodierung mit jsonp_decode()

Um auf die zurückgegebenen Daten über eine URL wie die von Ihnen angegebene zuzugreifen, müssen Sie kann die PHP-Funktion jsonp_decode() verwenden, um den JSONP-Ergebnissatz zu extrahieren. JSONP ist ein Format, das JSON-Daten in einen JavaScript-Funktionsaufruf einbettet.

Implementierung:

  1. Entfernen Sie den Funktionsnamen:Entfernen Sie die Funktionsname (und Klammern), die die JSON-Daten umgeben.
  2. Verwenden Sie jsonp_decode(). Funktion: Analysieren Sie die extrahierten JSON-Daten mit jsonp_decode(). Die Syntax lautet:

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

Benutzerdefinierte jsonp_decode()-Funktion:

Die folgende benutzerdefinierte jsonp_decode()-Funktion kann JSONP-Antworten verarbeiten:

<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>
Nach dem Login kopieren

Verwendung:

<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>
Nach dem Login kopieren

DEMO:

Dieses Beispiel zeigt, wie die vorgeschlagenen Symbole abgerufen und angezeigt werden und Namen aus der 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>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie extrahiere ich JSONP Resultset in PHP mit jsonp_decode()?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage