2013-05-17 74 views
0

我正在使用Google CSE的項目。在這一步我正在編寫代碼來從中檢索JSON結果。 下面的代碼:使用CURL,Google CSE獲取PHP中的多個內容

<?php 
function cURL($url, $ref, $p) { 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
curl_setopt($ch, CURLOPT_REFERER, $ref); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
if ($p) { 
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $p); 
} 
$result = curl_exec($ch); 
curl_close($ch); 
if ($result) { 
    return $result; 
} else { 
    return ''; 
} 
} 

if (isset($_GET['keyword'])) { 
$keyword = $_GET['keyword']; 
} else { 
echo 'salah bro!'; 
} 
$cseNumber = 'aaa'; // Key for the API thing 
$key = 'bbb'; //Key for Nofriani's account: sorta a password 
$start = '1'; 
$file = cURL('https://www.googleapis.com/customsearch/v1?key=' . $key . '&cx=' . $cseNumber . '&q=' . $keyword . '&siteSearchFilter=i&alt=json&start=' . $start, 'https://www.googleapis.com/customsearch/v1?key=' . $key . '&cx=' . $cseNumber . '&q=' . $keyword . '&siteSearchFilter=i&alt=json&start=' . $start, null); 
echo $file; 

?> 

它非常完美,我得到了谷歌CSE的10名第一的成績。不幸的是,API限制了只能批量檢索10個結果。現在,我打算在一個結果頁面中取得100個結果(不是分開的10頁),通過循環。我加了這一點:

$start= ''; 
$file = cURL('https://www.googleapis.com/customsearch/v1?key=' . $key . '&cx=' . $cseNumber . '&q=' . $keyword . '&siteSearchFilter=i&alt=json&start=' . $start, 'https://www.googleapis.com/customsearch/v1?key=' . $key . '&cx=' . $cseNumber . '&q=' . $keyword . '&siteSearchFilter=i&alt=json&start=' . $start, null, $start); 
return $file; 

function getResult() { 
    for ($i = 0; $i <= 90; $i+=10) { 
     $file .= cURL($url, $ref, $p, ($i + 1)); 
     for ($j = 0; $j < 10; $j++) { 
      echo $file; 
     } 
    } 
} 

>

但它沒有工作,就像它沒有?我嘗試了一些技巧在這裏:PHP How can I open several sources using curl? 但它沒有工作,以及,:( 任何人都可以請幫我解決這個謝謝..

回答

0

你忘了像參數和連接這麼多的東西,適當的功能會是怎樣?這

更新

function getResult($key,$cseNumber,$keyword) { // parameter added 
    for ($i = 1; $i <= 10; $i++) { 
     $file = cURL('https://www.googleapis.com/customsearch/v1?key=' . $key . '&cx=' . $cseNumber . '&q=' . $keyword . '&siteSearchFilter=i&alt=json&start=' . $i, 'https://www.googleapis.com/customsearch/v1?key=' . $key . '&cx=' . $cseNumber . '&q=' . $keyword . '&siteSearchFilter=i&alt=json&start=' . $i, null); // . removed from here 
     echo $file; 
    } 
} 
+0

嗯,是的。我已經添加了參數,但它仍然給了一個空白頁。:( – Fii

+0

是它給人的空白頁,所有循環或顯示第1個一個人的? –

+0

它給了完全空白頁Ë,.我該怎麼辦? – Fii