Questa è una funzione che ho creato per prendere gli ultimi bookmark da Delicious, autenticandosi via cURL e trasformando l'XML in JSON:
Questo è il JSON di input - che ottengo con un print_r($data_delicious); -, l'ho ridotto ad un solo risultato per leggibilità (e tanto serve solo per vedere com'è l'albero gerarchico):codice:<?php // JSON URL which should be requested $json_url = 'https://api.del.icio.us/v1/posts/recent'; $username = 'myusername'; // authentication $password = 'mypassword'; // authentication // Initializing curl $ch = curl_init( $json_url ); // Configuring curl options $options = array( CURLOPT_RETURNTRANSFER => true, CURLOPT_USERPWD => $username . ":" . $password // authentication ); // Setting curl options curl_setopt_array( $ch, $options ); $cache_delicious = '/BLAHBLAH/'.sha1($json_url).'.json'; if(file_exists($cache_delicious) && filemtime($cache_delicious) > time() - 1000){ // if a cache file newer than 1000 seconds exist, use it $data_delicious = file_get_contents($cache_delicious); } else { $delicious_result = simplexml_load_string(curl_exec($ch)); $data_delicious = json_encode($delicious_result); file_put_contents($cache_delicious, $data_delicious); } $obj = $data_delicious['post']['@attributes']; foreach (array_slice(json_decode($data_delicious, true), 0, 5) as $obj) { $delicious_title = str_replace('"', '\'', $obj['description']); $delicious_url = htmlentities($obj['href'], ENT_QUOTES, "UTF-8"); $output = "[*]<a rel=\"external nofollow\" title=\"$delicious_title\" href=\"$delicious_url\">$delicious_title</a>"; echo $output; } ?>
Purtroppo c'è qualcosa di sbagliato nelle variabili del foreach (`$delicious_title` and `$delicious_url`) in `foreach`, infatti ricevo questi errori:codice:{ "@attributes":{ "tag":"", "user":"myusername" }, "post":[ { "@attributes":{ "description":"Fastweb: fibra o VDSL? Disinformazione alla porta", "extended":"", "hash":"d00d03acd6e01e9c2e899184eab35273", "href":"http:\/\/storify.com\/giovannibajo\/fastweb-fibra-o-vdsl", "private":"no", "shared":"yes", "tag":"", "time":"2013-06-14T10:30:08Z" } } ] }
codice:Illegal string offset 'post' Illegal string offset '@attributes' Undefined index: description Undefined index: href

Rispondi quotando