本文以帝国CMS6.0为演示说明,其它版本请根据实际情况修改
1、首先安装站内搜索引擎,下载地址:/html/201004-25/20100425102129.htm
2、修改帝国CMS添加文章页面,增加数据索引接口,方法如下:
打开帝国CMS所在文件夹/e/class/hinfofun.php文件,找到第78行:$ccr=$empire->fetch1("select classid,modid,listdt,haddlist,sametitle,addreinfo,wburl,repreinfo from {$dbtbpre}enewsclass where classid='$add[classid]' and islast=1");
修改为:
$ccr=$empire->fetch1("select classid,modid,listdt,haddlist,sametitle,addreinfo,wburl,repreinfo,classpath from {$dbtbpre}enewsclass where classid='$add[classid]' and islast=1");
然后找到第111行://签发
在其前面增加以下代码:
//索引添加开始 function posttohost($url, $data) { $url = parse_url($url); if (!$url) return "couldn’t parse url"; if (!isset($url['port'])) { $url['port'] = ""; } if (!isset($url['query'])) { $url['query'] = ""; }
$encoded = "";
while (list($k,$v) = each($data)) { $encoded .= ($encoded ? "&" : ""); $encoded .= rawurlencode($k)."=".rawurlencode($v); }
$fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80); if (!$fp) return "Failed to open socket to $url[host]";
fputs($fp, sprintf("POST %s%s%s HTTP/1.0\n", $url['path'], $url['query'] ? "?" : "", $url['query'])); fputs($fp, "Host: $url[host]\n"); fputs($fp, "Content-type: application/x-www-form-urlencoded\n"); fputs($fp, "Content-length: " . strlen($encoded) . "\n"); fputs($fp, "Connection: close\n\n");
fputs($fp, "$encoded\n");
$line = fgets($fp,1024); if (!eregi("^HTTP/1\.. 200", $line)) return;
$results = ""; $inheader = 1; while(!feof($fp)) { $line = fgets($fp,1024); if ($inheader && ($line == "\n" || $line == "\r\n")) { $inheader = 0; } elseif (!$inheader) { $results .= $line; } } fclose($fp);
return $results; } //索引接口参数 $SearchPortal="http://www.test.com/TotIndex.aspx";//搜索引擎索引接口地址 $IndexKey="totsearchengine01";//接口访问key,请通过搜索引擎中的web.config查找 //添加索引 $arrVal["key"] = $IndexKey; $arrVal["action"] = "insert"; $arrVal["id"] = $id; $arrVal["Title"] = mb_convert_encoding($add[title], 'utf-8', 'gb2312'); $arrVal["Content"] = mb_convert_encoding($add[newstext], 'utf-8', 'gb2312'); $arrVal["Categoryid"] = $add[classid]; $arrVal["Summary"] = mb_convert_encoding($add[newstext], 'utf-8', 'gb2312'); $arrVal["Photo"] = ""; $arrVal["ModDate"] = date('Y-m-d g:i:s'); $arrVal["LinkUrl"] = "http://".$_SERVER['SERVER_NAME']."/".$ccr[classpath]."/".$newspath."/".$id.".html"; $strTemp = posttohost($SearchPortal, $arrVal); print_r(mb_convert_encoding($strTemp, 'gb2312', 'utf-8')); //索引添加结束 |
经过上面修改后,通过帝国CMS后台添加文章,将会出现以下提示:
附件下载:hinfofun.rar
成功添加索引:..................... |

通过搜索可以看到数据成功索引到搜索引擎中
