/**
* Récupère le contenu d'une URL
* au besoin encode son contenu dans le charset local
*
* @uses init_http()
* @uses recuperer_entetes_complets()
* @uses recuperer_body()
* @uses transcoder_page()
* @uses prepare_donnees_post()
*
* @param string $url
* @param array $options
* bool transcoder : true si on veut transcoder la page dans le charset du site
* string methode : Type de requête HTTP à faire (HEAD, GET, POST, PUT, DELETE)
* int taille_max : Arrêter le contenu au-delà (0 = seulement les entetes ==> requête HEAD). Par defaut taille_max = 1Mo ou 16Mo si copie dans un fichier
* array headers : tableau associatif d'entetes https a envoyer
* string|array datas : Pour envoyer des donnees (array) et/ou entetes au complet, avec saut de ligne entre headers et donnees ( string @see prepare_donnees_post()) (force la methode POST si donnees non vide)
* string boundary : boundary pour formater les datas au format array
* bool refuser_gz : Pour forcer le refus de la compression (cas des serveurs orthographiques)
* int if_modified_since : Un timestamp unix pour arrêter la récuperation si la page distante n'a pas été modifiée depuis une date donnée
* string uri_referer : Pour préciser un référer différent
* string file : nom du fichier dans lequel copier le contenu
* int follow_location : nombre de redirections a suivre (0 pour ne rien suivre)
* string version_http : version du protocole HTTP a utiliser (par defaut defini par la constante _INC_DISTANT_VERSION_HTTP)
* @return array|bool
* false si echec
* array sinon :
* int status : le status de la page
* string headers : les entetes de la page
* string page : le contenu de la page (vide si copie dans un fichier)
* int last_modified : timestamp de derniere modification
* string location : url de redirection envoyee par la page
* string url : url reelle de la page recuperee
* int length : taille du contenu ou du fichier récupéré
* int content_length : (optionnel) taille annoncée par le serveur distant dans ses headers (si annoncée)
*
* string file : nom du fichier si enregistre dans un fichier
*/
function recuperer_url($url, $options = []) {
Quand on spécifie un nom de fichier ‹ file › => ‹ reponse.json › ,
dans quel dossier est stocké le fichier ?
Ou bien faut-il spécifier un chemin accessible ?
Ce serait bien qu’il retourne le chemin complet dans la réponse « file ».
include_spip('inc/distant');
$res = recuperer_url($url_json);
// si on a recu correctement le json
if ($res['status'] == 200 and $res['length']) {
$json = json_decode($res['page'], true);
// $json contient les données du json, à toi de jouer...
}