[RESOLU] Interface web d'une zibase

Eléphanteau du PHP | 14 Messages

31 mai 2016, 09:07

Bonjour,
On a un projet qui consiste a faire une application web avec PHP/MySQL(on utilisant wampserver).
cette application a pour but d'extraire les données qui se trouve dans ce lien en format json: "https://zibase2.net/api/get/ZAPI.php?zi ... arget=home", et stocké tous ces informations dans une base de donnée.
le problème c'est que je ne suis pas fort en programmation web, ma question et comment faire pour charger les données qui se trouve dans se lien.

Mammouth du PHP | 688 Messages

31 mai 2016, 09:57


Eléphanteau du PHP | 14 Messages

31 mai 2016, 10:07

Bonjour tof73,
on a esséyer le code indique dans la documentation ma sa marche toujours pas.
peut etre c'est a cause du format du texte a importer?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

31 mai 2016, 10:14

Bonjour,

Le JSON fourni est valide donc peut être interprété sans problème par json_decode()
Qu'as-tu essayé exactement, qu'est-ce qui ne marche pas ?
Quel est le message d'erreur ?
le problème c'est que je ne suis pas fort en programmation web
:arrow: Message déplacé dans le forum PHP débutant
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 176 Messages

31 mai 2016, 11:00

Bonjour Eniac,

Comme tof73 le souligne, tu dois utiliser les fonctions file_get_contents et json_decode

Code

Code : Tout sélectionner

$content = file_get_contents($url); $object = json_decode($content); var_dump($object);
Affichage

Code : Tout sélectionner

object(stdClass)[1] public 'head' => string 'success' (length=7) public 'body' => object(stdClass)[2] public 'zibase' => object(stdClass)[3] public 'id' => string 'ZiBASE005383' (length=12) public 'connected' => int 1 public 'variables' => ...
Tu devrais te retrouver avec un objet contenant l'intégralité des données du JSON.

A noter que tu peux également tester le retour du file_get_contents pour savoir si la page à été récupéré correctement.
Cordialement
Naroth

Eléphanteau du PHP | 14 Messages

03 juin 2016, 11:02

Bonjour, merci pour vos réponse.
en fait j'ai fais ce que vous m'aviez dit et j'ai eu ce résultat:
array (size=2)
'head' => string 'success' (length=7)
'body' =>
array (size=7)
'id' => string 'ZA14' (length=4)
'name' => string 'C1 SP103-2' (length=10)
'icon' => string 'logotype_Presence.png' (length=21)
'protocol' => int 19
'status' => int 0
'time' => int 1464873186
'Zwstatus' =>
array (size=3)
'presence' => int 1
'error' => int 0
'battery' => int 0
mais mon but est d'affiché juste l'id, name et présence par exemple id:ZA14.
merci par avance.

Eléphant du PHP | 176 Messages

03 juin 2016, 11:07

Pour récupérer ton ID, tu dois faire

Code : Tout sélectionner

$object['body']['id']
Je pense que tu dois être en mesure d'afficher le name et presence
Cordialement
Naroth

Eléphanteau du PHP | 14 Messages

03 juin 2016, 11:20

merci mais rien ne s'affiche.

Eléphant du PHP | 176 Messages

03 juin 2016, 11:29

Ce que je trouve plutôt étrange, c'est que toi tu as un enchaînement d'array alors que moi j'ai clairement un objet.
Et en plus j'ai pris ton url, je n'ai pas du tout les mêmes données que toi.

Peux-tu nous en dire plus sur ton code actuel ?
Cordialement
Naroth

Eléphanteau du PHP | 14 Messages

03 juin 2016, 11:32

voici mon code,,
<?php
$json = file_get_contents('https://zibase2.net/api/get/ZAPI.php?zi ... or&id=ZA14');
$deco =json_decode($json,true);
echo $json;
var_dump($deco);
echo $deco['body']['name']->;
echo $deco['Zwstatus']['presence'];
?>

Eléphant du PHP | 176 Messages

03 juin 2016, 11:37

Ok, j'ai compris ton problème,

Voici l'affichage du var_dump :

Code : Tout sélectionner

array (size=2) 'head' => string 'success' (length=7) 'body' => array (size=7) 'id' => string 'ZA14' (length=4) 'name' => string 'C1 SP103-2' (length=10) 'icon' => string 'logotype_Presence.png' (length=21) 'protocol' => int 19 'status' => int 0 'time' => int 1464873186 'Zwstatus' => array (size=3) 'presence' => int 1 'error' => int 0 'battery' => int 0
Tu as donc une array dont un de ses élements est un array, le but va être d'accéder à cet élément (qui est une array)

si tu fais :

Code : Tout sélectionner

echo $deco['body']['id']
l'affiachage sera :
ZA14
Maintenant pour accéder à Zwstatus tu es obligé de passer par l'élément body
Cordialement
Naroth

Eléphanteau du PHP | 14 Messages

03 juin 2016, 11:51

maintenant çà marche, merci beaucoup.

Eléphanteau du PHP | 14 Messages

06 juin 2016, 14:00

Bonjour,
j'ai besoin d'afficher la date et l'heure de chaque détection, ensuite remettre la valeur 1 ( de présence ) a zero.
je vois pas comment faire pour avoir tout ces détail.

Eléphant du PHP | 176 Messages

06 juin 2016, 14:07

Bonjour Eniac,

Qu'est ce que tu appelles la date et l'heure de chaque détection ?
L'heure à laquelle tu viens lire le json ?
Ou l'heure à laquelle le json a été généré ?
Cordialement
Naroth

Eléphanteau du PHP | 14 Messages

06 juin 2016, 14:08

L'heure à laquelle le json a été généré.