Extragere Date din sir cu JSON in PHP
Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
-
MelecaCristian
- Mesaje:176
Extragere Date din sir cu JSON in PHP
Buna,
Am urmatorul script json(php) si doresc extragerea datelor de la url-ul acesta:
Cod: Selectaţi tot
youtube-mp3.org/api/itemInfo/?video_id=6UjfTKHQ4vo&adloc=&r={{datetime}}
Sa returneze rezultat de tip lista:
Cod: Selectaţi tot
Melodia: NUME MELODIE
COD : 31902321099231912399 (este doar un exemplu)
Imagine: (Poza)
Am incercat sa folosesc scriptul meu de mai jos dar nu stiu unde am gresit
Cod: Selectaţi tot
<?php
$url = 'http://www.youtube-mp3.org/api/itemInfo/?video_id=6UjfTKHQ4vo&adloc=&r={{datetime}}';
$content = file_get_contents($url);
$json = json_decode($content, true);
foreach($json['info']['title'] as $item) {
print 'Melodia: ';
print $item['title'];
print '<br>';
print 'Cod: ';
print $item['h'];
print 'Imagine:';
print '<br><img src="' . $item['image'][0]['value'] . '" border="0" alt="" />';
print '<br>';
}
?>
Ma puteti ajuta ... Multumesc mult.
„Uneori o greşeală poate fi tot ce este necesar pentru o realizare valoroasă.” — Henry Ford
MarPlo
Mesaje:4343
Salut
Problema e ca sirul cu datele returnate de acel Youtube Api nu e un format JSON valid, are acel "info =" inaintea obiectului JSON.
Trebuie extras din sir doar subsirul cu formatul JSON valid (cu preg_match() ), apoi, fiindca este doar un singur array, din acest obiet:
Cod: Selectaţi tot
{"title" : "DaOne - povestea noastra (feat. Ewa)", "image" : "http://i.ytimg.com/vi/6UjfTKHQ4vo/default.jpg", "length" : "4", "status" : "serving", "progress_speed" : "", "progress" : "", "ads" : "", "pf" : "http://acef.u.aclst.com/ping.php?video_id=6UjfTKHQ4vo&h=9178", "h" : "a148abf7ef86bab307d50d0d9d6177f0"}
Se pot prelua datele fara foreach().
Merge asa:
Cod: Selectaţi tot
<?php
$url = 'http://www.youtube-mp3.org/api/itemInfo/?video_id=6UjfTKHQ4vo&adloc=&r={{datetime}}';
$content = file_get_contents($url);
if(preg_match('/{(.*?)}/i', $content, $infojson)) {
$item = json_decode($infojson[0], true);
print 'Melodia: ';
print $item['title'];
print '<br>';
print 'Cod: ';
print $item['h'];
print 'Imagine:';
print '<br><img src="'. $item['image'] .'" border="0" alt="" />';
print '<br>';
}
MelecaCristian
Mesaje:176
Multumesc mult, merge.
Dar la variabila "h" returneaza alt cod, nush de ce.
E tare ciudat de ex: daca ai observat cand returneaza manual apare asa :
a148abf7ef86bab307d50d0d9d6177f0 (si e ok)
Cand folosesc scriptul apare asa:
ebc58d3bc980eb26fed2ba49a10cc8f7
Deci e cu totul alt cod si nu merge.
„Uneori o greşeală poate fi tot ce este necesar pentru o realizare valoroasă.” — Henry Ford
MarPlo
Mesaje:4343
Am testat scriptul, la mine apare acelasi cod la script ca si in pagina accesata manual, adica asta:
a6d19dd346055c8de74e4642b303a4d3
Dar ieri era altul, se pare ca e varriabil. Oricum, nu tine direct de acest subiect, e codul din datele transmise de Youtube la file_get_contents() si preluat corect cu json_decode().
Subiecte similare
- Eroare la incarcare json
JavaScript - jQuery - Ajax
Primul mesaj
Bună Marius
Cum rezolv să imi încarce tot fișierul .json
eoroare la
//fetch(endpoint)
//.then(blob => blob.json())
//.then(data =>...
Ultimul mesaj
Fisierul json de la acea adresa are peste 50 MB, e cam mare pentru preluare si procesare direct in pagina (client side) cu javascript.
A) Indicat...
- Adaugare orar zilele saptamanii in baza de date
PHP - MySQL - XML
Primul mesaj
Salut
Am o baza de date cu toate locatiile
location_id | name |address |telephone | open
Si un formular prin care incarc datele in bd....
Ultimul mesaj
Treaba cu adaugare json in mysql e simpla, se rezuma la adaugarea unui sir care contine ghilimele duble.
Problema la tine e ca acele ghilimele sunt...