بیتا حکمت
چهارشنبه 22 بهمن 1393, 17:04 عصر
سلام . کدی که در پایین ملاحضه می کنید نتایج جست و جوی گوگل رو برمی گردونه .
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
/**
* google_search_api()
* Query Google AJAX Search API
*
* @param array $args URL arguments. For most endpoints only "q" (query) is required.
* @param string $referer Referer to use in the HTTP header (must be valid).
* @param string $endpoint API endpoint. Defaults to 'web' (web search).
* @return object or NULL on failure
*/
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' => 'هوش مصنوعی',
));
//results[$x]->url;
print_r($rez);
?>
اما مشکل اینجاست که خروجی به این صورت و نامرتب هست .
http://8pic.ir/images/b0180gtw2lixidviyr1u.jpg (http://8pic.ir/)
سوال اول : چطوری می تونم URL ها و محتویات URL رو به تفکیک چاپ کنم ؟ به عبارتی در کد بالایی چه تغییری لازم هست که URL و محتویات URL به صورت منظم چاب بشن (اگر سوالم گنک به نظر می رسه به خروجی کد دوم در ادامه مطلب دقت کنید )
کد دیگری هم برای بدست آوردن نتایج جست وجوی گوگل وجود داره
<?php
$query = 'Test';
$url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=".$query;
$body = file_get_contents($url);
$json = json_decode($body);
for($x=0;$x<count($json->responseData->results);$x++){
echo "<b>Result ".($x+1)."</b>";
echo "<br>URL: ";
echo $json->responseData->results[$x]->url;
echo "<br>VisibleURL: ";
echo $json->responseData->results[$x]->visibleUrl;
echo "<br>Title: ";
echo $json->responseData->results[$x]->title;
echo "<br>Content: ";
echo $json->responseData->results[$x]->content;
echo "<br><br>";
}
?>
که خروجی اش به این صورت هست
http://8pic.ir/images/9ydu2q1yqdxnlvm082mb.jpg (http://8pic.ir/)
سوال دوم : چرا کدی که برای روش دوم استفاده شده ، برای کلمات فارسی جواب نمی ده ! وقتی به جای کلمه تست می نویسم " هوش مصنوعی " فقط یه صفحه سفید نشون داده میشه .
سوال آخر : چندان مهم نیست ، اما اگر کسی می دونه که چطوری میشه بیشتر از 4 نتیجه جست و جو رو با کد به دست آورد ممنون میشم . از رفرنس های انگلیسی چیز زیادی متوجه نشدم.
پیشاپیش از توجه و راهنمایی اتون ممنونم
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
/**
* google_search_api()
* Query Google AJAX Search API
*
* @param array $args URL arguments. For most endpoints only "q" (query) is required.
* @param string $referer Referer to use in the HTTP header (must be valid).
* @param string $endpoint API endpoint. Defaults to 'web' (web search).
* @return object or NULL on failure
*/
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' => 'هوش مصنوعی',
));
//results[$x]->url;
print_r($rez);
?>
اما مشکل اینجاست که خروجی به این صورت و نامرتب هست .
http://8pic.ir/images/b0180gtw2lixidviyr1u.jpg (http://8pic.ir/)
سوال اول : چطوری می تونم URL ها و محتویات URL رو به تفکیک چاپ کنم ؟ به عبارتی در کد بالایی چه تغییری لازم هست که URL و محتویات URL به صورت منظم چاب بشن (اگر سوالم گنک به نظر می رسه به خروجی کد دوم در ادامه مطلب دقت کنید )
کد دیگری هم برای بدست آوردن نتایج جست وجوی گوگل وجود داره
<?php
$query = 'Test';
$url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=".$query;
$body = file_get_contents($url);
$json = json_decode($body);
for($x=0;$x<count($json->responseData->results);$x++){
echo "<b>Result ".($x+1)."</b>";
echo "<br>URL: ";
echo $json->responseData->results[$x]->url;
echo "<br>VisibleURL: ";
echo $json->responseData->results[$x]->visibleUrl;
echo "<br>Title: ";
echo $json->responseData->results[$x]->title;
echo "<br>Content: ";
echo $json->responseData->results[$x]->content;
echo "<br><br>";
}
?>
که خروجی اش به این صورت هست
http://8pic.ir/images/9ydu2q1yqdxnlvm082mb.jpg (http://8pic.ir/)
سوال دوم : چرا کدی که برای روش دوم استفاده شده ، برای کلمات فارسی جواب نمی ده ! وقتی به جای کلمه تست می نویسم " هوش مصنوعی " فقط یه صفحه سفید نشون داده میشه .
سوال آخر : چندان مهم نیست ، اما اگر کسی می دونه که چطوری میشه بیشتر از 4 نتیجه جست و جو رو با کد به دست آورد ممنون میشم . از رفرنس های انگلیسی چیز زیادی متوجه نشدم.
پیشاپیش از توجه و راهنمایی اتون ممنونم