Étape 18 : Réception sur le serveur web
Managepages.php est un fichier de serveur en fonction que l’imp nuage des appels de service, de passer les données de votre application imp à elle en tant que données JSON au format. Sa fonction consiste à décoder les données, enregistrer un fichier journal (ou une base de données) et enregistrez-le dans un format d’affichage facile.
(N’oubliez pas, que l’exemplaire entre le code commencent et des balises de fin de code, pas les balises elles-mêmes)
< code Commencez >
<? php
sript pour recevoir les données URL codées JSON de l’IMP
Chaîne au format JSON ressemblera à :
{« valeur »: {"volt":3.2780001163482666,"temp":24.332368850708008}, "cible": "300e600a779951c4", "canal": 1}
fonction jsonToArray ($json) {}
Convertit l’objet JSON dans un tableau standard
$json = substr ($json, strpos ($json,'{') + 1, strlen($json)) ;
$json = substr ($json, 0, strrpos($json,'}')) ;
$json = preg_replace('/(^|,)([\\s\\t]*)([^:]*) (([\\s\\t]*)):(([\\s\\t]*))/s, "$1" $3" 4$:', trim($json)) ;
retour json_decode ('{'. $json.'} ", true) ;
}
Entrer les données dans un tableau, avec que nous pouvons travailler
$dArray = jsonToArray (file_get_contents ('php://input')) ;
extraire chaque composant dans son propre variable pour faciliter le
la lecture. Noter que ce n’est pas obligatoire car il est vraiment
doubler, mais peut rendre le code un peu plus facile à lire.
$target = $dArray ["cible"] ;
$channel = $dArray ['chaîne'] ;
Notez que les données que vous décrivez et envoyez dans votre code Imp est
un tableau au sein de la paire clé/valeur de « valeur ».
$temp = $dArray ['value'] ['temp'] ;
$volt = $dArray ['value'] ['volt'] ;
$location = $dArray ['value'] ['location'] ;
créer un timbre de date/heure
Voir http://php.net/manual/en/timezones.php pour les fuseaux horaires supportés
date_default_timezone_set("Australia/Adelaide") ;
$dateTime = date ('Y-m-j à') ; "Y-m-j à"
Nous allons créer un fichier journal au format CSV. Note, en fonction de la fréquence de mise à jour, ce fichier peut devenir
très grand!!! Vous pouvez également modifier cette option pour enregistrer les données sur un serveur de mySQL au lieu de cela.
$fa = fopen (« data.csv », « a ») ;
Si (troupeau ($fa, LOCK_EX))
{
fwrite ($fa, $target. "," . $channel. "," . $dateTime. "," . number_format ($temp, 2). ",". number_format ($volt, 2). "\n");
fflush($FA) ;
troupeau ($fa, LOCK_UN) ;
}
Créez le fichier qui peut être lu pour les mises à jour dans un navigateur web.
$fw = fopen ("latestImpData.txt", « w ») ;
Si (troupeau ($fw, LOCK_EX))
{
fwrite ($fw, $target. "|" . $channel. "|" . $dateTime. "|" . number_format ($temp, 1). "|". number_format ($volt, 2). "|" . $location) ;
fwrite ($fw, file_get_contents ('php://input')) ;
fflush($FW) ;
troupeau ($fw, LOCK_UN) ;
}
? >
fin de < code >