Preluare valoare din obiect JSON

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
alexlemnean
Mesaje:14

Preluare valoare din obiect JSON

Salut.
Vreau sa preluez o valoare dintr-un fisier tip JSON si nu reusesc.
Cu acest exemplu :

Cod: Selectaţi tot

<?php
$file = 'fisier.txt';      

if(file_exists($file)) {
  $clsm = file_get_contents($file);

  $obsn = json_decode($clsm, true);

  foreach($obsn AS $prop => $val) {
    echo '<br/>'. $prop .' - '. $val;
  }
}
else echo $file .' nu exista';
?>
-imi returneaza asa:

Cod: Selectaţi tot

User1 - Array
User2 - Array
User3 - Array
.

Cu exemplu de preluare:

Cod: Selectaţi tot

<?php
$file = 'sitedata.txt';   

if(file_exists($file)) {
  $clsm = file_get_contents($file);

$obsn = json_decode($clsm);

$pnct = $obsn->puncte;
echo '<br/>'. $url;
}
?>
-pagina mi`o afiseaza goala.
Asta este ceea ce vreau, sa preluez valoare 'puncte'.

Multumesc !

MarPlo Mesaje:4343
Salut
Depinde de structura acelui JSON si ce date /valoare vrei sa preiei.
Din exemplu dat de tine se pare ca $val e un array; iar ca sa-i vezi structura poti folosi var_export():

Cod: Selectaţi tot

echo '<br/>'. $prop .' - '; var_export($val);
 
- Incearca:

Cod: Selectaţi tot

echo '<br/>'. $prop .' - '. $val['puncte'];
  

alexlemnean Mesaje:14
Formatul JSON era :

Cod: Selectaţi tot

{
"User1": {"meciuri": 3, "puncte": 24},
"User2": {"meciuri": 3, "puncte": 26},
"User3": {"meciuri": 2, "puncte": 21}
}

MarPlo Mesaje:4343
Ar trebui sa functioneze acest cod:

Cod: Selectaţi tot

<?php
$file = 'fisier.txt';     

if(file_exists($file)) {
  $clsm = file_get_contents($file);
  $obsn = json_decode($clsm, true);

  foreach($obsn AS $usr => $arr) {
    echo '<br/>'. $usr .' - '. $arr['puncte'];
  }
}
else echo $file .' nu exista';
?>

alexlemnean Mesaje:14
Multumesc. Am reusit sa preaiau acea valoare.
Acuma vreau sa scriu acea valoare ($pct) intr-un fisier si am incercat cu fopen dar nu am reusit.
Cum ar trebuii sa procedez ?

MarPlo Mesaje:4343
Incearca cu file_put_contents(). Uite aici un tutorial cu un mic exemplu: Using file_put_contents, file_get_contents, readfile and file().
Sau poti sa te inspiri si din scriptul de la pagina: Inregistrare IP vizitatori site, in care se salveaza ip-urile intr-un fisier pe server; similar, cu modificari facute de tine poti inregistra si alte date.

Subiecte similare