0
votes

Erreur PHP Curl: Données renvoyant la valeur null

J'ai un code JSON que j'ai mis dans le fichier JSON nommé data.json

le code JSON est: p> xxx pré>

maintenant le code PHP que j'utilise pour chercher Les données sont les suivantes: P>

$url = "data.json" ;

$ch = curl_init() ;

curl_setopt($ch, CURLOPT_URL, $url) ;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$result = curl_exec($ch);


curl_close($ch) ;


$data = json_decode($result, true) ;

foreach($data as $mydata)
{
  $data1 = $mydata["value"] ;
  $data2 = $mydata["date"] ;

echo $data1 ." : ". $data2 ;
echo "<br/>";

}


13 commentaires

Obtenez-vous des données dans $ de données?


Qu'est-ce que console.log ($ résultat); vous donner?


var_dump $ data pour voir ce qui est là-bas - quand j'utilise votre Json directement ça marche pour moi


Pouvez-vous jeter la variable $ mydata s'il vous plaît et montrez-nous


Var_dump ($ données) me donne NULL Résultat @rapaelec mais pourquoi?


foreach est faux aussi bien, cela devrait être foreach ($ data comme $ clé => $ valeur)


@ B001 ᛦ Pas de faute de frappe, il veut la clé et la valeur, foreach doit avoir une clé et une valeur pour les prochaines lignes de code $ $1 = $ myData ["valeur"]; $ data2 = $ myData ["date"];


J'ai changé le titre et la description de la question. S'il vous plaît laissez-moi savoir pourquoi je reçois cette erreur


Ce fichier JSON est situé sur votre serveur? Pourquoi utilisez-vous CURL et BOT FILE_GET_Contents?


Êtes-vous sûr que vous utilisez la bonne URL?


@ shushu304 Il peut y avoir une chance que je puisse utiliser ce contenu à partir d'une URL externe, c'est pourquoi j'utilise CURL


@ B001 ᛦ Oui, les deux fichiers sont dans le même dossier


@ Abnit-Chauhan Il est un gaspillage pour utiliser CURL pour un fichier local, essayer de changer pour utiliser File_Get_Contents au cas où il s'agit d'un fichier local et d'utiliser curl au cas où il s'agit d'une URL /


4 Réponses :


-1
votes

Lorsque vous utilisez Curl avec nom de fichier uniquement, le boucle pense que c'est une URL, vous aurez donc une erreur xxx

si c'est un fichier local, je préférerai utiliser File_Get_Contents ... < / p> xxx

et dans le cas de l'URL d'utiliser la boucle.

Pour répondre et vous aider, essayons de voir si vous avez des erreurs de curl .. .

Modifiez le code comme ça et mettez-nous à jour

Essayez d'utiliser curl_error et vérifiez s'il y a des erreurs de CURL,

Ce que vous obtenez? xxx


5 commentaires

J'ai eu ce que je fais mal. Lorsque j'ajoute un chemin d'URL complet dans l'URL $. Je suis capable d'aller chercher les données. Mais connaissez-vous la raison pour laquelle?


J'essaie d'aider ... Vérifiez d'abord ce que les erreurs ... et ensuite nous mettrons à jour et continuerons à vous aider


Merci pour l'aide . Je n'ai pas indiqué votre réponse. Mais peut être votre raison est correct. L'utilisation de la courbe lorsque c'est nécessaire est la meilleure pratique


S'il vous plaît essayez cela et continuons à le comprendre. et vous êtes invité à uPvote :)


J'ai suscité, mais mes votes ne comptent pas. Laisse-moi essayer cet exemple



0
votes

Vous devez fournir l'URL complète du fichier JSON si vous utilisez curl code>, au lieu du data.json code> xxx pré>

Autres options pour obtenir les données de JSON P>

$result = file_get_contents($url);


0 commentaires

0
votes

Cela fonctionne bien pour moi.Veuillez vérifier.

<?php
      $url = "http://raveesh.rnd/data.json" ;
      $ch = curl_init() ;

      curl_setopt($ch, CURLOPT_URL, $url) ;
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
      $result = curl_exec($ch);
      curl_close($ch) ;

      $data = json_decode($result, true) ;

      foreach($data as $mydata)
      {
           $data1 = $mydata["value"] ;
           $data2 = $mydata["date"] ;

           echo $data1 ." : ". $data2 ;
           echo "<br/>";
      }
?>

Output:

 23 : 03/2018
 43 : 03/2019
 34 : 12/2017
 13 : 01/2019
 34 : 02/2019


0 commentaires

0
votes

Le problème ici est:

1- Vous ne pouvez pas boucler le même hôte, vous devez utiliser la fonction file_get_content () forte> pour obtenir votre JSON comme: p>

<?php

$url = "http://date.jsontest.com" ;

$ch = curl_init($url) ;

$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array('Content-type: application/json')
);

curl_setopt_array( $ch, $options );
$result = curl_exec($ch);

curl_close($ch) ;

$result = json_decode($result, 1);


foreach($result as $key => $mydata)
{
    echo $key ." : ". $mydata ;
    echo "<br/>";
}


0 commentaires