问题描述
我在循环和条件方面遇到问题。我正在尝试检查Google自定义搜索API的结果中的链接是否可用。但只会得到最后的结果为真。不知道为什么。
foreach($array as $qqq => $kkk ){
$found = "No";
$kkk_en = urlencode($kkk);
$page_rank = "" ;
for ($page = 1;$page <= $pages && $found == "No";$page++){
$apiurl = sprintf('https://www.googleapis.com/customsearch/v1?q=%s&cx=%s&key=%s&hl=%s&gl=%s&start=%d',$kkk_en,$GOOGLE_CSE_CX,$GOOGLE_API_KEY,$hl,$gl,($page-1)*10+1);
$json = file_get_contents($apiurl);
$obj = json_decode($json);
foreach ($obj->items as $idx=>$item) {
if (strpos($item->link,$domain) ){
$found = "Yes";
$page_rank = ($idx + ($page-1)*10);
}
}
}
if ($found == "No"){
$toolResult .= "<tr>
<td>".$kkk."</td>
<td>".$domain."</td>
<td>Not in top 100</td>
<td>".$hl." / ".$gl."</td></tr>";
}
else{
$toolResult .= "<tr>
<td>".$kkk."</td>
<td>".$domain."</td>
<td>".$page_rank."</td>
<td>".$hl." / ".$gl."</td></tr>";
}
}
解决方法
通过在循环外设置全局变量来计算它..