【发布时间】:2011-11-20 06:24:38
【问题描述】:
我正在使用 yahoo api - 并且几乎与他们的示例不同。但我收到错误,例如:为 foreach() 提供的参数无效
这是实际的 foreach 语句:
foreach ($data->query->results->result as $r){
// do something with the data
}
我正在运行的整个代码都在这里:
$c =curl_init("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20local.search%20where%20state%3D'delaware'%20and%20city%20%3D%20'smyrna'%20and%20query%3D'pizza'&format=json");
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_CONNECTTIMEOUT, 20); // query times out after 20 seconds
$data = curl_exec($c); // I asked for data format to be in json in the query it appears to be returned decoded
//print_r($data);
$data = curl_exec($c);
if ($data === FALSE) {
die("Curl failed with error: " . curl_error($c));
}
$data = json_decode($data);
if (is_null($data)) {
die("json_decode failed with error: " . json_last_error());
}
foreach ($data->query->results->result as $r){
// do something with the data
}
$data 是一个解码的 json 响应——它得到了数据,而且看起来我的结构是正确的——例如,我只想循环并显示公司名称——但不行。
【问题讨论】:
-
你能提供一个 JSON 编码响应的例子吗?
-
var_dump$data,看看它包含什么。 -
是的,连同示例(解码)响应,您能否也给我们一个您要从中提取数据的示例?