在heihe view相关搜索中,调整了google ajax搜索,增加了bing ajax搜索和cnki ajax搜索功能
This commit is contained in:
parent
3936cc94b4
commit
f2ea852aae
|
@ -767,6 +767,7 @@ class ServiceController extends Zend_Controller_Action
|
||||||
'q' => $q, // 查询内容
|
'q' => $q, // 查询内容
|
||||||
'key' => $this->config->google->maps->api,
|
'key' => $this->config->google->maps->api,
|
||||||
'userip' => $_SERVER['REMOTE_ADDR'],
|
'userip' => $_SERVER['REMOTE_ADDR'],
|
||||||
|
'rsz' => 5
|
||||||
));
|
));
|
||||||
print_r($rez);
|
print_r($rez);
|
||||||
exit();
|
exit();
|
||||||
|
@ -784,6 +785,81 @@ class ServiceController extends Zend_Controller_Action
|
||||||
$body = curl_exec($ch);
|
$body = curl_exec($ch);
|
||||||
curl_close($ch);
|
curl_close($ch);
|
||||||
return $body;
|
return $body;
|
||||||
|
}// google 搜索
|
||||||
|
|
||||||
|
function bingsearchAction(){
|
||||||
|
$this->_helper->layout->disableLayout();
|
||||||
|
$this->_helper->viewRenderer->setNoRender();
|
||||||
|
$q = $this->_request->getParam('q');
|
||||||
|
$rez = $this->bing_search($q);
|
||||||
|
print_r($rez);
|
||||||
|
exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function bing_search($keyword,$referer = 'http://westdc.westgis.ac.cn/'){
|
||||||
|
$keyword=urlencode($keyword);
|
||||||
|
$url = "http://api.bing.net/json.aspx?AppId=".$this->config->bing->api
|
||||||
|
."&Query=".$keyword
|
||||||
|
."&Sources=Web"
|
||||||
|
."&Version=2.0"
|
||||||
|
."&Market=en-us"
|
||||||
|
."&Adult=Moderate"
|
||||||
|
."&Options=EnableHighlighting"
|
||||||
|
."&Web.Count=5"
|
||||||
|
."&Web.Offset=0"
|
||||||
|
."&Web.Options=DisableHostCollapsing+DisableQueryAlterations";
|
||||||
|
//&JsonType=callback&JsonCallback=SearchCompleted
|
||||||
|
$ch = curl_init();
|
||||||
|
curl_setopt($ch, CURLOPT_URL, $url);
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||||
|
curl_setopt($ch, CURLOPT_REFERER, $referer);
|
||||||
|
$body = curl_exec($ch);
|
||||||
|
curl_close($ch);
|
||||||
|
return $body;
|
||||||
|
}//bing 搜索
|
||||||
|
|
||||||
|
function cnkisearchAction(){
|
||||||
|
$this->_helper->layout->disableLayout();
|
||||||
|
$this->_helper->viewRenderer->setNoRender();
|
||||||
|
$q = $this->_request->getParam('q');
|
||||||
|
$rez = $this->cnki_search($q);
|
||||||
|
print_r($rez);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
function cnki_search($keyword , $referer = 'http://westdc.westgis.ac.cn/'){
|
||||||
|
$keyword = urlencode($keyword);
|
||||||
|
$url = "http://search.cnki.net/search.aspx?q=$keyword";
|
||||||
|
$ch = curl_init();
|
||||||
|
curl_setopt($ch, CURLOPT_URL, $url);
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||||
|
curl_setopt($ch, CURLOPT_REFERER, $referer);
|
||||||
|
$body = curl_exec($ch);
|
||||||
|
curl_close($ch);
|
||||||
|
|
||||||
|
$rev = array();
|
||||||
|
$max = 5;
|
||||||
|
if(preg_match_all("#<a.+? class=\"acticle\" href=\"(.+?)\".*?>(.+?)</a>#i",$body,$matchs,PREG_PATTERN_ORDER))
|
||||||
|
{
|
||||||
|
foreach ($matchs[2] as $k=>$v){
|
||||||
|
if($k < $max) $rev[$k]['title']=$v;
|
||||||
|
}
|
||||||
|
foreach ($matchs[1] as $k=>$v){
|
||||||
|
if($k < $max) $rev[$k]['url']=$v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(preg_match_all("#<span class=\"search_result_snap\" >(.+?)</span>#i",$body,$matchs,PREG_PATTERN_ORDER))
|
||||||
|
{
|
||||||
|
foreach ($matchs[1] as $k=>$v){
|
||||||
|
if($k < $max) $rev[$k]['content']=$v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$response=array("result"=>$rev,"count"=>$max,"morelink"=>'http://search.cnki.net/search.aspx?q='.$keyword);
|
||||||
|
|
||||||
|
$rev = Zend_Json::encode($response);
|
||||||
|
return $rev;
|
||||||
|
}//cnki 搜索
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -229,12 +229,20 @@ endforeach;
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
<?php
|
||||||
|
$keywords = array();
|
||||||
|
foreach($this->keys as $cg){
|
||||||
|
if($cg->keytype=="theme")
|
||||||
|
$keywords[]=$cg->keyword;
|
||||||
|
}
|
||||||
|
$ev = join(" ",$keywords);
|
||||||
|
?>
|
||||||
<ul class="idTabs">
|
<ul class="idTabs">
|
||||||
<li><a href="#related">相关数据</a></li>
|
<li><a href="#related">相关数据</a></li>
|
||||||
<li><a href="#literature">相关文献</a></li>
|
<li><a href="#literature">相关文献</a></li>
|
||||||
<li><a href="#comments">数据评论</a></li>
|
<li><a href="#comments">数据评论</a></li>
|
||||||
<li><a href="#service">服务记录</a></li>
|
<li><a href="#service">服务记录</a></li>
|
||||||
<li><a href="#gsearch">相关搜索</a></li>
|
<li><a href="#gsearch" class="googlesearch">相关搜索</a></li>
|
||||||
<li><a href="#recommend">给我推荐</a></li>
|
<li><a href="#recommend">给我推荐</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<?php if ($this->related) : ?>
|
<?php if ($this->related) : ?>
|
||||||
|
@ -278,15 +286,9 @@ echo '【'.$r->author.'. '.$r->publisher.' '.$r->ts_issued.'】</li>';
|
||||||
</div>
|
</div>
|
||||||
<div id="gsearch">
|
<div id="gsearch">
|
||||||
<ul id="searchctrl">
|
<ul id="searchctrl">
|
||||||
<li class="title">Google关键词搜索:</li>
|
<li><a href="javascript:;" class="googlesearch">Google关键词搜索</a></li>
|
||||||
<?php
|
<li><a href="javascript:;" class="cnkiSearch">CNKI知识搜索</a></li>
|
||||||
foreach($this->keys as $cg){
|
<li><a href="javascript:;" class="bingsearch">CN bing 搜索</a></li>
|
||||||
echo '<li><a href="javascript:;" onclick="googlesearch(\''.$cg->keyword.'\');">'.$cg->keyword.'</a></li>'."\r\n";
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
<li class="title">文献搜索:</li>
|
|
||||||
<li><a href="http://search.cnki.net/search.aspx?q=<?php echo urlencode($this->escape($md->title));?>" target="_blank">CNKI知识搜索</a></li>
|
|
||||||
<li><a href="http://cn.bing.com/search?q=<?php echo urlencode($this->escape($md->title));?>&go=&qs=n&sk=&form=QBLH" target="_blank">CN bing 搜索</a></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<ul id="searchlist">
|
<ul id="searchlist">
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -356,7 +358,8 @@ function ajaxpage(page){
|
||||||
success:function(html){$('#allcomments').html(html);},
|
success:function(html){$('#allcomments').html(html);},
|
||||||
beforeSend:function(){$('#allcomments').html('<img src="/images/loading.gif" />评论加载中');}
|
beforeSend:function(){$('#allcomments').html('<img src="/images/loading.gif" />评论加载中');}
|
||||||
});
|
});
|
||||||
};ajaxpage(0);
|
};
|
||||||
|
ajaxpage(0);
|
||||||
function getFileList(){
|
function getFileList(){
|
||||||
var tw = ($(window).width() - $('#window-outter').width())/2;
|
var tw = ($(window).width() - $('#window-outter').width())/2;
|
||||||
$('#window-outter').css({'right':tw});
|
$('#window-outter').css({'right':tw});
|
||||||
|
@ -411,8 +414,17 @@ function getSubFileList(uuid,id,depth){
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$('.googlesearch').click(function(){
|
||||||
|
googleSearch('<?php echo $ev;?>');
|
||||||
|
});
|
||||||
|
$('.bingsearch').click(function(){
|
||||||
|
bingSearch('<?php echo $ev;?>');
|
||||||
|
});
|
||||||
|
$('.cnkiSearch').click(function(){
|
||||||
|
cnkiSearch('<?php echo $ev;?>');
|
||||||
|
});
|
||||||
|
|
||||||
function googlesearch(keyword){
|
function googleSearch(keyword){
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type:"POST",
|
type:"POST",
|
||||||
url:"/service/googlesearch",
|
url:"/service/googlesearch",
|
||||||
|
@ -421,12 +433,62 @@ function googlesearch(keyword){
|
||||||
var items = [];
|
var items = [];
|
||||||
var obj = jQuery.parseJSON(html);
|
var obj = jQuery.parseJSON(html);
|
||||||
$.each(obj.responseData.results, function(key, val) {
|
$.each(obj.responseData.results, function(key, val) {
|
||||||
var html = '<p><a href="' +val['unescapedUrl']+'">'+val['title']+'<a/></p><p><span>'+
|
var html = '<p><a href="' +val['unescapedUrl']+'">'+val['title']+'<a/></p><p><span>'
|
||||||
val['url'].replace(/%(.*)/i,"") +'</span></p><p>'+
|
+val['url'].replace(/%(.*)/i,"") +'</span></p><p>'
|
||||||
val['content']
|
+val['content']
|
||||||
+'</p>';
|
+'</p>';
|
||||||
items.push('<li>' + html + '</li>');
|
items.push('<li>' + html + '</li>');
|
||||||
});
|
});
|
||||||
|
items.push('<li class="more"><a href="'+obj.responseData.cursor.moreResultsUrl+'" target="_blank">查看更多搜索结果(约'+obj.responseData.cursor.estimatedResultCount+'条)</a></div>');
|
||||||
|
$('#searchlist').html(items.join(''));
|
||||||
|
},
|
||||||
|
beforeSend:function(){
|
||||||
|
$('#searchlist').html('<img src="/images/11887177066.gif" />结果加载中');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function bingSearch(keyword){
|
||||||
|
$.ajax({
|
||||||
|
type:"POST",
|
||||||
|
url:"/service/bingsearch",
|
||||||
|
data:'q='+keyword,
|
||||||
|
success:function(html){
|
||||||
|
var items = [];
|
||||||
|
var obj = jQuery.parseJSON(html);
|
||||||
|
$.each(obj.SearchResponse.Web.Results, function(key, val) {
|
||||||
|
var html = '<p><a href="' +val['Url']+'">'+val['Title']+'<a/></p><p><span>'
|
||||||
|
+val['DisplayUrl'].replace(/%(.*)/i,"") +'</span></p><p>'
|
||||||
|
+val['Description']
|
||||||
|
+'</p>';
|
||||||
|
items.push('<li>' + html + '</li>');
|
||||||
|
});
|
||||||
|
items.push('<li class="more"><a href="http://cn.bing.com/search?q=<?php echo urlencode($ev); ?>&go=&qs=n&sk=&form=QBLH" target="_blank">查看更多搜索结果(约'+obj.SearchResponse.Web.Total+'条)</a></div>');
|
||||||
|
$('#searchlist').html(items.join(''));
|
||||||
|
},
|
||||||
|
beforeSend:function(){
|
||||||
|
$('#searchlist').html('<img src="/images/11887177066.gif" />结果加载中');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function cnkiSearch(keyword){
|
||||||
|
$.ajax({
|
||||||
|
type:"POST",
|
||||||
|
url:"/service/cnkisearch",
|
||||||
|
data:'q='+keyword,
|
||||||
|
success:function(html){
|
||||||
|
var items = [];
|
||||||
|
var obj = jQuery.parseJSON(html);
|
||||||
|
$.each(obj.result, function(key, val) {
|
||||||
|
var html = '<p><a href="' +val['url']+'" target="_blank">'+val['title']+'<a/></p><p><span>'
|
||||||
|
+val['url'].replace(/%(.*)/i,"") +'</span></p><p>'
|
||||||
|
+val['content']
|
||||||
|
+'</p>';
|
||||||
|
|
||||||
|
items.push('<li>' + html + '</li>');
|
||||||
|
});
|
||||||
|
items.push('<li class="more"><a href="'+obj.morelink+'" target="_blank">查看更多搜索结果</a></div>');
|
||||||
$('#searchlist').html(items.join(''));
|
$('#searchlist').html(items.join(''));
|
||||||
},
|
},
|
||||||
beforeSend:function(){
|
beforeSend:function(){
|
||||||
|
|
Loading…
Reference in New Issue