使用google来做你的站内搜索

想把一个网站的站内搜索做好了不容易,以mysql,php网站为例,当你的网站内容越来越多的时候用sql语句中like去搜索全站就不现实了。

2010-02-01 11:09:54

mysql原生是不支持中文的全文索引的,要想全文索引比较麻烦,如果用sql语句中的like去搜索正文就不太好了。
当网站内容很多的时候,google也很好的索引了你的站点时,就可以用google去搜索你的网站!

function get_html_content($url,$parameter = ''){
$fp = fsockopen($url,80);
if ($fp) {
$out = "GET /{$parameter} HTTP/1.1\r\n";
$out.= "Host: {$url}\r\n";
$out.= "Connection: Close\r\n\r\n";

fwrite($fp, $out);
$s = '';
while (!feof($fp)) {
$s.= fgets($fp);
}
fclose($fp);
return $s;
}
}

上面这个函数是我的blog用google去搜索全站的函数!

$s = get_html_content('www.google.cn',"search?q={$keyword}+site%3Awww.seo-space.net/blog/&num=200");

一页二百条,根据关键词来搜索


$s = mb_convert_encoding($s,'UTF-8','CP936');

转换成utf-8

$pattern = "/<li class=g><h3 class=r><a .*>(.*)<\/a><\/h3><div class=\"s\">(.*)<cite>(.+)<\/cite><span class=gl><a .*>.*<\/a><\/span><\/div>/iuU";
$search = preg_match_all($pattern,$s,$a);

用正则表达式取得列表

ok了,现在只需要根据自己的要求把列表输出来就行了,这里有网址有,title

上面这些代码我已经用了半年了,没出过问题!

徜徉于这片废土的我们.....应当去哪里追寻更好的自己?