Heim  >  Artikel  >  Backend-Entwicklung  >  Wie extrahiere ich JSONP Resultset in PHP?

Wie extrahiere ich JSONP Resultset in PHP?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-30 18:25:30854Durchsuche

How to Extract JSONP Resultset in PHP?

JSONP-Ergebnismenge in PHP extrahieren

Einführung

Die gegebene Aufgabe umfasst das Abrufen und Parsen von Daten von einer URL, die eine zurückgibt JSONP-Antwort (JSON mit Auffüllung). PHP bietet Funktionen, um solche Antworten effektiv zu verarbeiten.

PHP-Implementierung

Die JSONP-Antwort besteht aus JavaScript-Code, der um eine JSON-Nutzlast gewickelt ist. Um den tatsächlichen JSON-Code zu extrahieren, entfernen Sie den Namen der Rückruffunktion und die Klammern vom Anfang der Antwort. Anschließend kann die PHP-Funktion json_decode() verwendet werden, um den JSON in ein assoziatives Array oder ein Objekt zu analysieren.

Benutzerdefinierte Funktion für die JSONP-Dekodierung

Der Einfachheit halber a Eine benutzerdefinierte Funktion mit dem Namen jsonp_decode() kann definiert werden:

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

Verwendung

Mit dieser benutzerdefinierten Funktion können die JSONP-Daten wie folgt extrahiert werden:

<code class="php">$data = jsonp_decode($response);</code>

Beispiel

Betrachten Sie die bereitgestellte JSONP-Beispielantwort:

YAHOO.Finance.SymbolSuggest.ssCallback({"ResultSet":{"Query":"yahoo","Result":[{"symbol":"YHOO","name": "Yahoo! Inc.","exch": "NMS","type": "S","exchDisp":"NASDAQ","typeDisp":"Equity"}...]}})

Verwendung der Funktion 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>

Dieser Code extrahiert die Abfragezeichenfolge zusammen mit den Symbolen, Namen und Austauschinformationen aus der JSONP-Antwort.

Das obige ist der detaillierte Inhalt vonWie extrahiere ich JSONP Resultset in PHP?. 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