On dirait que cela devrait fonctionner
$urls = array_map(function($result) {
return $result->url;
}, $rez->responseData->results);
Question
Code sans emploi:
AVIS: Essayer d'obtenir une propriété de non-objet
$i = 1;
var_dump($rez->responseData->results[$i]->url);
Erreur fatale: Impossible d'utiliser l'objet de type STDClass comme tableau
$rez = (array) $rez;
var_dump($rez['responseData']['results']['1']['url']);
Résultats du code de travail:
Comment extacter uniquement les URL et transformer la liste des URL en un tableau?
stdClass Object
(
[responseData] => stdClass Object
(
[results] => Array
(
[0] => stdClass Object
(
[GsearchResultClass] => GwebSearch
[unescapedUrl] => http://www.rottentomatoes.com/top/
[url] => http://www.rottentomatoes.com/top/
[visibleUrl] => www.rottentomatoes.com
...........................................................................
Code de travail:
function google_search_api($args, $referer = 'http://localhost/test/', $endpoint = 'web'){
$url = "http://ajax.googleapis.com/ajax/services/search/".$endpoint;
if ( !array_key_exists('v', $args) )
$args['v'] = '1.0';
$url .= '?'.http_build_query($args, '', '&');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// note that the referer *must* be set
curl_setopt($ch, CURLOPT_REFERER, $referer);
$body = curl_exec($ch);
curl_close($ch);
//decode and return the response
return json_decode($body);
}
$rez = google_search_api(array(
'q' => 'movie list', 'start' => '5',
));
echo '<pre>';
print_r($rez);
echo '</pre>';
?>
J'ai essayé plusieurs variations de ce qui précède, mais je ne le comprends tout simplement pas. Probablement quelque chose de simple pour que tout commentaire soit apprécié.
La solution
On dirait que cela devrait fonctionner
$urls = array_map(function($result) {
return $result->url;
}, $rez->responseData->results);