hace varias semanas que estoy liado con un código y no consigo hacerlo funcionar. Por favor necesito ayuda para algo que creo que es muy sencillo y yo ya llevo varias semanas investigando, aprendiendo, leyendo y probando diversas maneras de hacerlo pero no lo consigo! A ver si un alma caritativa de tan distinguido foro puede iluminarme y sacarme de tan angustioso sufrimiento de ver las horas pasar y no hallar la solución. En el código hago una llamada a la API de youtube y extraigo una serie de datos. Lo que quiero es mostrar los datos en un div o varios div que se deben ir actualizando. Pero lo que realmente necesito o me bastaria es hacer que los suscriptores se actualicen cada segundo con el css del odómetro. En este momento el código lo tengo así, aunque he probado mil y una cosas.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="stylesheet" href="http://github.hubspot.com/odometer/themes/odometer-theme-default.css" /> <script src="https://github.hubspot.com/odometer/odometer.js"></script> <title>Documento sin título</title> </head> <body> <div id='odometer' class='odometer'>123</div><br/> <div id='odometer1' class='odometer'>123</div> <script> setTimeout(function(){ <?php $ api_key = "mi_key"; $ canales = array( array("nombre"=>"T-Series","id"=>"UCq-Fj5jknLsUf-MWSy4_brA"), array("nombre"=>"PewDiePie","id"=>"UC-lHJZR3Gqxm24_Vd_AJ5Yw"), array("nombre"=>"5-Minutecrafts","id"=>"UC295-Dw_tDNtZXFeAPAW6Aw")); $ count = count($ canales); for ($ i = 0; $ i < $ count; $ i++) { $ channel_id[$ i] = $ canales[$ i]["id"]; $ estadisticas[$ i] = file_get_contents('https://www.googleapis.com/youtube/v3/channels?part=statistics&id='.$ channel_id[$ i].'&key='.$ api_key); $ estadisticas_decoded[$ i] = json_decode($ estadisticas[$ i] , true); $ snippets[$ i] = file_get_contents('https://www.googleapis.com/youtube/v3/channels?part=snippet&id='.$ channel_id[$ i].'&key='.$ api_key); $ snippets_decoded[$ i] = json_decode($ snippets[$ i], true); } for ($ i = 0; $ i < $ count; $ i++) { $ top[] = array('nombre'=>$ snippets_decoded[$ i]['items'][0]['snippet']['title'],'imagen'=>$ snippets_decoded[$ i]['items'][0]['snippet']['thumbnails']['default']['url'],'suscriptores'=>$ estadisticas_decoded[$ i]['items'][0]['statistics']['subscriberCount'],'videos'=>$ estadisticas_decoded[$ i]['items'][0]['statistics']['videoCount'],'videos_vistos'=>$ estadisticas_decoded[$ i]['items'][0]['statistics']['viewCount']); } foreach ($ top as $ key => $ row) { $ suscriptores[$ key] = $ row['suscriptores']; } array_multisort($ suscriptores, SORT_DESC, $ top); $ objJson=json_encode($ top); ?> var obj = JSON.parse('<?= $ objJson; ?>'); document.getElementById("odometer").innerHTML= obj[0].suscriptores; document.getElementById("odometer1").innerHTML= obj[1].suscriptores; }, 5000); </script> </body> </html>
Espero puedan ayudarme y gracias por adelantado!