Acest tutorial arata cum se preia in PHP datele dintr-un sir cu obiect JSON, folosind json_decode().
Obiectul (sirul JSON) poate fi preluat dintr-o sursa externa. De exemplu, de la o adresa URL (cu file_get_contents(), sau cURL) care returneaza un sir cu date in obiect JSON, sau dintr-un fisier text de pe server, sau dintr-o baza de date.
<?php $file = 'sitedata.txt'; // adresa /numele fisierului // verifica daca fisierul exista if(file_exists($file)) { $filedata = file_get_contents($file); /* Sau, se poate adauga direct acest sir: $filedata = '{"url": "https://coursesweb.net/", "category": "Web Development", "nr_pages": 400}'; */ // transforma sirul in obiect al clasei stdClass $objson = json_decode($filedata, true); // parcurge obiectul si afiseaza fiecare proprietate si valoarea ei foreach($objson AS $prop => $val) { echo '<br/>'. $prop .' - '. $val; } } else echo $file .' nu exista';Afiseaza:
$property = 'nume_proprietate'; $valoare = $obiect->{$property};
<?php // sir cu obiect JSON $strjson = '{"url": "https://coursesweb.net/", "category": "Web Development", "nr_pages": 400}'; // transforma sirul in obiect al clasei stdClass $objson = json_decode($strjson); // preia valoarea unei anumite proprietati $url = $objson->url; echo '<br/>'. $url; // preia valoarea unei proprietati cu numele salvat in variabila $prop = 'category'; $val = $objson->{$prop}; echo '<br/>'. $val;Acest cod va afisa:
Este important ca sirul sa fie un obiect JSON valid, altfel, functia json_decode() va returna False sau Null.
<?php // sir cu obiect JSON $strjson = '{"url": "https://marplo.net/", "category": "Diverse", "nr_pages": 1500}'; // transforma sirul in array asociativ $arrjson = json_decode($strjson, true); // Test var_dump($arrjson); // preia valoarea unui anumit element $url = $arrjson['url']; echo '<br/>'. $url; // preia valoarea unui element cu numele retinut in variabila $elm = 'category'; $val = $arrjson[$elm]; echo '<br/>'. $val;Rezulta:
<?php // sir cu obiect JSON, continand inca un obiect, si un Array $strjson = '{ "url": "https://marplo.net/", "category": {"ct1": "Web Development", "ct2": "Web Programming"}, "courses": ["PHP-MySQL", "JavaScript", "HTML", "CSS"] }'; // converteste sirul intr-un array asociativ $arrjson = json_decode($strjson, true); // Afiseaza structura array-ului echo '<pre>'; var_export($arrjson); echo '</pre>'; // preia prima categorie "ct1", si al doilea element in "courses" $ct1 = $arrjson['category']['ct1']; $course2 = $arrjson['courses'][1]; echo $ct1 .'<br/>'. $course2;Rezulta:
array ( 'url' => 'https://marplo.net/', 'category' => array ( 'ct1' => 'Web Development', 'ct2' => 'Web Programming', ), 'courses' => array ( 0 => 'PHP-MySQL', 1 => 'JavaScript', 2 => 'HTML', 3 => 'CSS', ) ) Web Development JavaScript
<?php // sir cu date de la Youtube App $yinfo = 'info = { "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=2717", "h" : "a148abf7ef86bab307d50d0d9d6177f0" };'; /* Se poate prelua acest sir de la pagina Youtube Api folosind acest cod: $url = 'http://www.youtube-mp3.org/api/itemInfo/?video_id=6UjfTKHQ4vo&adloc=&r={{datetime}}'; $yinfo = file_get_contents($url); */ // preia doar subsirul cu formatul JSON valid if(preg_match('/{(.*?)}/i', $yinfo, $infojson)) { // converteste obiectul JSON in array asociativ $arrjson = json_decode($infojson[0], true); // afisaza datele de la 'title' si 'image' $title = $arrjson['title']; $imgsrc = $arrjson['image']; echo $title .'<br/>'. $imgsrc; }
<ul> <li>http://coursesweb.net/html/</li> <li>http://www.marplo.net/html/</li> </ul>
.some_class { display: list-item; }
var obj = { "courses": ["php", "javascript", "ajax"] }; var jsonstr = JSON.stringify(obj); alert(jsonstr); // {"courses":["php","javascript","ajax"]}
$strhtml = '<body><div id="dv1">CoursesWeb.net</div></body>'; $dochtml = new DOMDocument(); $dochtml->loadHTML($strhtml); $elm = $dochtml->getElementById("dv1"); echo $elm->nodeValue; // CoursesWeb.net
I`m living here. - Traiesc /Locuiesc aici.
Estoy viviendo aquí. - Traiesc /Locuiesc aici.