Maison > développement back-end > tutoriel php > 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
Libérer: 2024-10-30 11:10:53
original
548 Les gens l'ont consulté

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>
    Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal