Fichier JSON URL

patarins85 Messages postés 3 Statut Membre -  
jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je cherche à écrire un script php qui me permette de copier le contenu de l'URL suivante :

http://api.wunderground.com/api/3673392229c5182b/conditions/lang:FR/pws:1/q/pws:IPAYSDEL73.json


dans un fichier (par exemple fichier_local.json)

Est ce possible ?

Si oui, comment faire.

Merci d'avance.

Samuel

4 réponses

  1. patarins85 Messages postés 3 Statut Membre
     
    J'ai essayé le code suivant :


    <?php
    $fp = fopen ("http://api.wunderground.com/api/3673392229c5182b/conditions/lang:FR/pws:1/q/pws:IPAYSDEL73.json", "r");
    $contenu_du_fichier = fread ($fp, filesize('http://api.wunderground.com/api/3673392229c5182b/conditions/lang:FR/pws:1/q/pws:IPAYSDEL73.json'));

    fclose ($fp);

    $json = json_decode ($contenu_du_fichier);

    $filename = 'fichier_local.json';

    // Assurons nous que le fichier est accessible en écriture
    if (is_writable($filename)) {

    // Dans notre exemple, nous ouvrons le fichier $filename en mode d'ajout
    // Le pointeur de fichier est placé à la fin du fichier
    // c'est là que $somecontent sera placé
    if (!$handle = fopen($filename, 'a')) {
    echo "Impossible d'ouvrir le fichier ($filename)";
    exit;
    }

    // Ecrivons quelque chose dans notre fichier.
    if (fwrite($handle, $json) === FALSE) {
    echo "Impossible d'écrire dans le fichier ($filename)";
    exit;
    }

    echo "L'écriture de ($json) dans le fichier ($filename) a réussi";

    fclose($handle);

    } else {
    echo "Le fichier $filename n'est pas accessible en écriture.";
    }
    ?>


    J'ai un message de copie réussie mais rien dans le fichier fichier_local.json

    Une idée ?

    Merci
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Si tu fais un json_decode... tu transformes le json en array.... donc je pense que le souci vient de là.
      Soit tu ne fais pas de json_decode... sois tu refais un json_encode de ta variable avant de l'écrire
      0
  2. patarins85 Messages postés 3 Statut Membre
     
    J'ai enlevé le json_decode mais j'ai toujours le même résultat.
    Rien n'est écrit dans le fichier fichier_local.json
    0
  3. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Par contre, pour lire le contenu d'une URL, essaye avec https://www.php.net/manual/fr/function.file-get-contents.php

    Et si ça ne fonctionne toujours pas, tu peux essayer en CURL
    function curl_get_contents($url)
    {
      $ch = curl_init($url);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
      $data = curl_exec($ch);
      curl_close($ch);
      return $data;
    } 
    

    0