Fichier JSON URL

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. Modérateur
    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;
    } 
    

    1. 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
      1. 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
        1. Modérateur
          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

      Discussions similaires

      Sécurité de l'URL

      2 réponses