Bonjour à tous,
Je coince. Je coince sérieusement, même. Je suis un codeur débutant, et je me suis sorti de tous les écueils rencontrés jusque là, mais maintenant, j'ai besoin de vous !
J'ai développé un petit script php qui me permet de parser le graph de facebook et d'obtenir du JSON.
Ce que fait le fichier fonctions.php :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <?
function likes($page) {
$pageData = @file_get_contents('https://graph.facebook.com/'.$page);
$pageData = json_decode($pageData);
$likes = "$pageData->likes";
return $likes;
};
function name($page) {
$pageData = @file_get_contents('https://graph.facebook.com/'.$page);
$pageData = json_decode($pageData);
$name = "$pageData->name";
return $name;
};
?> |
Un autre script appelle fonctions.php, il permet de me sortir un JSON dans une variable c'est le script update.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| <?
function update($page) {
include ('fonctions.php');
$date=date(dmY);
// vérifie la présence, par l'affichage des variables retournées par les scripts
$likes_up = likes($page);
$name_up = name($page);
$talking_about_count_up = talking($page);
$source_up = photo($page);
// echo $likes_up;
// echo $name_up;
// echo $talking_about_count_up;
// echo $source_up;
$data["$date"]["$name_up"][likes] = $likes_up;
$data["$date"]["$name_up"][talking] = $talking_about_count_up;
$datajson = json_encode($data);
$str = str_replace('\u','u',$datajson);
$datajson = preg_replace('/u([\da-fA-F]{4})/', '&#x\1;', $str);
}
?> |
Un autre script appelle update.php : datasave.php :
1 2 3 4 5 6 7 8 9 10
|
<?
$Cocacola= 'cocacola';
$Pepsi= 'pepsi';
$Orangina= 'orangina';
$listeupdate = array("$Cocacola", "$Pepsi", "$Orangina");
include ('datasave.php');
foreach ($listeupdate as $page) {update($page);
file_put_contents ("./data/data.json", $datajson, FILE_APPEND);};
?> |
Dans ce dernier, je stocke les identifiants des fanpages que je souhaite appeler les unes après les autres pour leur appliquer la fonction update. En sortie, j'aimerais bien obtenir quelque chose comme :
1 2 3
| {"20012015":{"nom_de_la_fanpage1":{"likes":"5059","talking":"8"}}}
{"20012015":{"nom_de_la_fanpage2":{"likes":"456","talking":"1"}}}
{"20012015":{"nom_de_la_fanpage3":{"likes":"234","talking":"2"}}} |
...
N fois.
Ensuite, avec un put_file_content, je les sotcke en JSON dans un fichier localement.
Problème :
En sortie, quand j'appelle la fonction JSON j'obtiens seulement, une ligne :
{"20012015":{"Coca-Cola":{"likes":"92975287","talking":"1862156"}}}
Je n'arrive pas à résoudre ce problème, j'ai essayé array_walk array_map etc. Mais rien n'y fait...
Je sais que mon code n'est pas parfait etc. Je suis preneur de toutes remarques constructives !
Auriez-vous une solution svp ?
Un grand merci par avance !
Choncha
Partager