Comment enregistré un fichier json en local?
Résolu
stgcici
Messages postés
51
Date d'inscription
Statut
Membre
Dernière intervention
-
enqueteactualite Messages postés 70 Date d'inscription Statut Membre Dernière intervention -
enqueteactualite Messages postés 70 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
sur mon futur site (pas encore en ligne), je récupère les 15 derniers bookmarks de mon compte Diigo. Pour se faire je passe par l'API de Diigo et PHP file_get_contents() et je parse le JSON avec json_decode(), etc...
Mais je me dis que si le site de Diigo tombe en panne, j'aurais une erreur sur ma page d'accueil, donc j'aimerais bien afficher quand-même le contenu.
Alors ça serait bien si je pouvais récupérer le JSON de l'API et de l'enregistrer sur mon serveur pour le parser en local. Puis une fois ou deux par jour je pourrais lancer un cron job qui rafraîchirait le fichier JSON sur mon serveur.
Le seul problème c'est que je ne sais pas trop comment faire tout ça, je me demande même si c'est la meilleure solution?
Donc j'aimerais avoir vos conseils et aussi quelques pistes de solutions pour les réaliser...
Merci, bonne fin de journée!
sur mon futur site (pas encore en ligne), je récupère les 15 derniers bookmarks de mon compte Diigo. Pour se faire je passe par l'API de Diigo et PHP file_get_contents() et je parse le JSON avec json_decode(), etc...
Mais je me dis que si le site de Diigo tombe en panne, j'aurais une erreur sur ma page d'accueil, donc j'aimerais bien afficher quand-même le contenu.
Alors ça serait bien si je pouvais récupérer le JSON de l'API et de l'enregistrer sur mon serveur pour le parser en local. Puis une fois ou deux par jour je pourrais lancer un cron job qui rafraîchirait le fichier JSON sur mon serveur.
Le seul problème c'est que je ne sais pas trop comment faire tout ça, je me demande même si c'est la meilleure solution?
Donc j'aimerais avoir vos conseils et aussi quelques pistes de solutions pour les réaliser...
Merci, bonne fin de journée!
A voir également:
- Creer un fichier json
- Fichier bin - Guide
- Creer un fichier .bat - Guide
- Créer un compte google - Guide
- Comment créer un groupe whatsapp - Guide
- Comment réduire la taille d'un fichier - Guide
3 réponses
Salut,
ton idée n'est pas bête, mais au lieu de faire un cron, tu peux aller chercher tes infos sur diigo, si tu ne trouves rien, tu regardes en local, sinon, tu mets les données que tu as récupéré dans un fichier ou une base de données.
un json est une chaine de caractère, tu peux en faire ce que tu veux.
ton idée n'est pas bête, mais au lieu de faire un cron, tu peux aller chercher tes infos sur diigo, si tu ne trouves rien, tu regardes en local, sinon, tu mets les données que tu as récupéré dans un fichier ou une base de données.
un json est une chaine de caractère, tu peux en faire ce que tu veux.
comme tu l'as dis, tu peut creer un fichiers dans lequel tu vas ecrire les informations de ton json que tu decode et apres du lire le contenu via php . est que c'est dans ce sens que ton post vise?
Hello,
oui ton idée de départ est bonne, je te conseil même d'utilisé uniquement le fichier json que tu aura enregistré en local.
Pour moi tu gagnera en perf et évitera certaine lenteur dans le cas ou le json distant met du temps à répondre...
donc je tes gentillement écris le code pour enregistrer le fichier json tout les jours et sans cron ... tu peu modifier la condition sur la date pour faire des maj du fichier plus souvent : )
oui ton idée de départ est bonne, je te conseil même d'utilisé uniquement le fichier json que tu aura enregistré en local.
Pour moi tu gagnera en perf et évitera certaine lenteur dans le cas ou le json distant met du temps à répondre...
donc je tes gentillement écris le code pour enregistrer le fichier json tout les jours et sans cron ... tu peu modifier la condition sur la date pour faire des maj du fichier plus souvent : )
<?php /* GET CACHE */ if (!file_exists('cache/flux/')) mkdir ('cache/flux/',0777); // si le dossier de cache existe pas //--- // si le fichier existe et si la date du fichier et égale à celle du jour on réupère le fichier if(file_exists('cache/flux/ton_flux.json') && date('d',filemtime('cache/flux/ton_flux.json')) == date('d')) { $xmlJson = file_get_contents('cache/flux/ton_flux.json'); } /* END GET CACHE */ else { // sinon (si il date pas d'aujourd'hui) on l'enregistre $urlJson = 'http://urldufluxoriginal.json'; $xmlJson = file_get_contents($urlJson); file_put_contents('cache/flux/ton_flux.json', $xmlJson); } // $xmlJson <= voilà ton flux json ;)
C'est exacte mais mon problème est que je n'arrive pas écrire les données récupéré dans un fichier en local.
En faite le contenu du fichier est vide alors que j'ai bien écrit les données.
Je ne sais pas d'ou vient le problème.!!