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

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

Patricia Arquette
Patricia ArquetteOriginal
2024-10-30 11:10:53455Durchsuche

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>

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>

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>

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>

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!

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