Maison  >  Article  >  développement back-end  >  Comment extraire l'ensemble de résultats JSONP en PHP avec jsonp_decode() ?

Comment extraire l'ensemble de résultats JSONP en PHP avec jsonp_decode() ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-30 11:10:53455parcourir

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

Extraction du jeu de résultats JSONP en PHP : décodage avec jsonp_decode()

Pour accéder aux données renvoyées à partir d'une URL comme celle que vous avez fournie, vous peut utiliser la fonction jsonp_decode() de PHP pour extraire l'ensemble de résultats JSONP. JSONP est un format qui intègre des données JSON dans un appel de fonction JavaScript.

Mise en œuvre :

  1. Supprimez le nom de la fonction : Supprimez le nom de la fonction (et parenthèses) entourant les données JSON.
  2. Utilisez la fonction jsonp_decode() : Analysez les données JSON extraites à l'aide de jsonp_decode(). La syntaxe est :

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

Fonction jsonp_decode() personnalisée :

La fonction jsonp_decode() personnalisée suivante peut gérer les réponses 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>

Utilisation :

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

Cet exemple montre comment récupérer et afficher les symboles suggérés et les noms de l'API Yahoo Finance Symbol Suggest :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn