Fichier JSON URL

Fermé
patarins85 Messages postés 3 Date d'inscription jeudi 26 mai 2016 Statut Membre Dernière intervention 26 mai 2016 - 26 mai 2016 à 10:00
jordane45 Messages postés 38361 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 décembre 2024 - 26 mai 2016 à 10:45
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
A voir également:

4 réponses

jordane45 Messages postés 38361 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 décembre 2024 4 720
26 mai 2016 à 10:12
0
patarins85 Messages postés 3 Date d'inscription jeudi 26 mai 2016 Statut Membre Dernière intervention 26 mai 2016
26 mai 2016 à 10:21
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
jordane45 Messages postés 38361 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 décembre 2024 4 720
26 mai 2016 à 10:24
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
patarins85 Messages postés 3 Date d'inscription jeudi 26 mai 2016 Statut Membre Dernière intervention 26 mai 2016
26 mai 2016 à 10:29
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
jordane45 Messages postés 38361 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 décembre 2024 4 720
26 mai 2016 à 10:45
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