ADODB.Recordset 错误 '800a0bcd'

ADODB.Recordset 错误 '800a0bcd',第1张

在网站的根目录下建个search.htm,内容如下

<html>

<head>

<title>搜索表单</title>

<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312">

</head>

<body bgcolor="#FFFFFF" text="#000000">

<form name="form1" method="post" action="search.php">

<table width="100%" cellspacing="0" cellpadding="0">

<tr>

<td width="36%">

<div align="center">

<input type="text" name="keyword">

</div>

</td>

<td width="64%">

<input type="submit" name="Submit" value="搜索">

</td>

</tr>

</table>

</form>

</body>

</html>

二,搜索程序

再在根目录下建个search.php 的文件,用来处理search.htm表单传过来的数据.内容如下

<?php

//获取搜索关键字

?$keyword=trim(?$_POST[“keyword”])

//检查是否为空

if(?$keyword==””){

echo”您要搜索的关键字不能为空”

exit//结束程序

}

?>

这样如果访问者输入的关键字为空时,可以做出提示。下面是遍历所有文件。

我们可以用递归的方法遍历所有的文件,可以用函数opendir,readdir,也可以用PHP Directory的类。我们现在用前者.

<?php

//遍历所有文件的函数

function listFiles(?$dir){

?$handle=opendir(?$dir)

while(false!==(?$file=readdir(?$handle))){

if(?$file!="."&&?$file!=".."){

//如果是目录就继续搜索

if(is_dir("?$dir/?$file")){

listFiles("?$dir/?$file")

}

else{

//在这里进行处理

}

}

}

}

?>

在红字的地方我们可以对搜索到的文件进行读取,处理.下面就是读取文件内容,并检查内容中是否含有关键字?$keyword,如果含有就把文件地址赋给一个数组。

<?php

//?$dir是搜索的目录,?$keyword是搜索的关键字 ,?$array是存放的数组

function listFiles(?$dir,?$keyword,&?$array){

?$handle=opendir(?$dir)

while(false!==(?$file=readdir(?$handle))){

if(?$file!="."&&?$file!=".."){

if(is_dir("?$dir/?$file")){

listFiles("?$dir/?$file",?$keyword,?$array)

}

else{

//读取文件内容

?$data=fread(fopen("?$dir/?$file","r"),filesize("?$dir/?$file"))

//不搜索自身

if(?$file!=”search.php”){

//是否匹配

if(eregi("?$keyword",?$data)){

?$array[]="?$dir/?$file"

}

}

}

}

}

}

//定义数组?$array

?$array=array()

//执行函数

listFiles(".","php",?$array)

//打印搜索结果

foreach(?$array as ?$value){

echo "?$value"."<br>"

}

?>

现在把这个结果和开头的一段程序结合起来,输入一个关键字,然后就会发现你的网站中的相关结果都被搜索出来了。我们现在在把它完善一下。

1,列出内容的标题

if(eregi("?$keyword",?$data)){

?$array[]="?$dir/?$file"

}

改成

if(eregi("?$keyword",?$data)){

if(eregi("<title>(.+)</title>",?$data,?$m)){

?$title=?$m["1"]

}

else{

?$title="没有标题"

}

?$array[]="?$dir/?$file ?$title"

}

原理就是,如果在文件内容中找到<title>xxx</title>,那么就把xxx取出来作为标题,如果找不到那么就把标题命名未”没有标题”.

2,只搜索网页的内容的主题部分。

做网页时一定会有很多html代码在里面,而这些都不是我们想要搜索的,所以要去除它们。我现在用正则表达式和strip_tags的配合,并不能把所有的都去掉。

?$data=fread(fopen("?$dir/?$file","r"),filesize("?$dir/?$file"))

//不搜索自身

if(?$file!=”search.php”){

//是否匹配

if(eregi("?$keyword",?$data)){

改为

?$data=fread(fopen("?$dir/?$file","r"),filesize("?$dir/?$file"))

if(eregi("<body([^>]+)>(.+)</body>",?$data,?$b)){

?$body=strip_tags(?$b["2"])

}

else{

?$body=strip_tags(?$data)

}

if(?$file!="search.php"){

if(eregi("?$keyword",?$body)){

3,标题上加链接

foreach(?$array as ?$value){

echo "?$value"."<br>"

}

改成

foreach(?$array as ?$value){

//拆开

list(?$filedir,?$title)=split(“[ ]”,?$value,”2”)

//输出

echo "<a href=?$filedir>?$value</a>"."<br>"

}

4防止超时

如果文件比较多,那么防止PHP执行时间超时是必要的。可以在文件头加上

set_time_limit(“600”)

以秒为单位,所以上面是设10分钟为限。

所以完整的程序就是

<?php

set_time_limit("600")

//获取搜索关键字

?$keyword=trim(?$_POST["keyword"])

//检查是否为空

if(?$keyword==""){

echo"您要搜索的关键字不能为空"

exit//结束程序

}

function listFiles(?$dir,?$keyword,&?$array){

?$handle=opendir(?$dir)

while(false!==(?$file=readdir(?$handle))){

if(?$file!="."&&?$file!=".."){

if(is_dir("?$dir/?$file")){

listFiles("?$dir/?$file",?$keyword,?$array)

}

else{

?$data=fread(fopen("?$dir/?$file","r"),filesize("?$dir/?$file"))

if(eregi("<body([^>]+)>(.+)</body>",?$data,?$b)){

?$body=strip_tags(?$b["2"])

}

else{

?$body=strip_tags(?$data)

}

if(?$file!="search.php"){

if(eregi("?$keyword",?$body)){

if(eregi("<title>(.+)</title>",?$data,?$m)){

?$title=?$m["1"]

}

else{

?$title="没有标题"

}

?$array[]="?$dir/?$file ?$title"

}

}

}

}

}

}

?$array=array()

listFiles(".","?$keyword",?$array)

foreach(?$array as ?$value){

//拆开

list(?$filedir,?$title)=split("[ ]",?$value,"2")

//输出

echo "<a href=?$filedir target=_blank>?$title </a>"."<br>"

}

?>

到此为止,你已经做好了自己的一个搜索引擎,你也可以通过修改内容处理部分来改进它,可以实现搜索标题,或者搜索内容的功能。也可以考虑分页。这些都留给你自己吧。

这里说明一下用preg_match代替eregi,会快很多。这里只是为了通俗易懂,所以使用了常用的eregi.

明代(公元1368-1644年),牡丹的栽培的中心,转移到了安徽亳州。夏之臣《评亳州牡丹》云:“吾亳州牡丹,年来浸盛,娇容三变,尤在季孟之间。等此而上,有天香一品,石榴红,胜娇容,宫红袍,琉璃贯珠,新红种种不一,杂红最后出,品种难得。又有大黄一种,轻腻可爱,不减三变。佛顶青为白色第一。大抵红花以花子红,银红、桃红为上。”又云:“草堂数武之步,种莳殆偏,率以两色并作一丛,红白异状,错综其间,又以平头紫,庆天香,先春红三色插入其花丛,间集而成文章,他时盛开灿然若锦”。此时开中国插花技术之先河。

无意中发现Access不能正常打开数据库文件,总报“未知”错误,

于是,解决之:

ACCESS打开表时出现“未知”错误提示解决方法 2006-09-20 15:15:12

大 中 小

解决方法:

关掉ACCESS,点击"开始"按钮->"运行" :

98, XP系统运行:

regsvr32.exe C:\WINDOWS\system32\msjtes40.dll

NT,2000系统运行:

regsvr32.exe C:\WINNT\system32\msjtes40.dll

症状描述:

原因:

Msjtes40.dll 没有被正确注册

症状重现:

为那些想体验我的痛苦的朋友,提供个重现效果的命令:

运行 regsvr32.exe /u C:\WINNT\system32\msjtes40.dll

以上命令,安全且可逆,放心试用。

说明:Msjtes40.dll 在你的机器上的路径可能不相同,如果你没用默认安装的话。

如果在以上路径找不到该文件,可到正常的机器上拷贝到相应目录,然后再注册即可。


欢迎分享,转载请注明来源:优选云

原文地址:https://54852.com/hy/811950.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-19
下一篇2023-06-19

随机推荐

  • 自然堂亮润美白淡斑霜怎样

     根据您的肌肤需求,推荐自然堂雪润皙白系列的产品,主要功效是美白,淡斑,保湿。该系列含有喜马拉雅5128米冰川水和玛瑙石榴精粹,甘草精粹,水稻精粹,抗氧化性极佳的同时能够为肌肤提供所需要的营养成分。1、sk2小银瓶2sk面部淡斑精华露富含光

    2023-12-14
    28200
  • 如何选择日抛隐形眼镜

    透氧量Oxygen permeability (Dkt)单位时间里镜片让氧气通过多少,眼睛需要呼吸角膜没有血管所以氧气大部分来自空气,隐形眼镜镜片本来就阻隔了氧气,所以戴久了眼睛会因为缺氧有红血丝,因此在选择镜片时要选择高透氧性的。需要一

    2023-12-14
    18000
  • 羽西护肤品怎么样

    一、羽西虫草焕颜系列怎么样虫草系列适合松弛、有干纹细纹颈纹的肌肤,质地轻薄,比较适合夏天用,冬天用不够保湿。浓浓的虫草香味,上脸后有嫩滑感,大约一周后脸色就开始逐渐改善。根据不同的肤质不同的情况来定制的护理,分别是光,弹,细三种,在肌肤开始

    2023-12-14
    17200
  • 彩妆品牌有哪些

    比较出名的彩妆品牌有:Maybelline美宝莲欧莱雅(中国)有限公司,Maybelline美宝莲,始于1917年美国,1996年归于欧莱雅集团。MAC魅可雅诗兰黛旗下,始于1985年加拿大的艺术彩妆品牌,专注于彩妆系列产品的研发生产经

    2023-12-14
    26600
  • 美妆星空是正品吗

    美妆星空是正品。宁波市江北美妆星空化妆品店,成立于2017年,位于浙江省宁波市,是一家以从事零售业为主的企业,经营范围为日用品,化妆品零售,有市场监管局监督产品,根据查证相关资料信息美妆星空的产品是正品。2022年,这些彩妆的坑你必须要知道

    2023-12-14
    22500
  • 中高端化妆品品牌有哪些

    1、雅诗兰黛雅诗兰黛是美国顶级化妆品牌,公司成立于1946年美国。公司规模庞大实力雄厚,旗下还有海蓝之谜以及朗仕等品牌。以抗衰老而知名推出了红石榴系列和小棕瓶修护系列产品,深受消费者的喜爱和追捧。创立时间:1946年,品牌发源地:美国。2、

    2023-12-14
    15700
  • 羽西化妆品怎么样啊

    于的护肤品是民用护肤品中最大的品牌。玉溪在国际上属于中低档,在国货上属于中高档。中药是包装和所有产品中的主要产品。虽然已经收购了玉溪,但是其产品的外包装依然有很浓的中国风,在国货中属于中端和高端。羽西的护肤品是平民护肤品中最大的品牌,比韩国

    2023-12-13
    15700
  • 兰蔻化妆品怎么样

    兰蔻的护肤品效果怎么样? 22岁,你应该用水分缘系列,因为不管什么年龄,保溼都是最重要的,如果你平时化彩妆,你会发现,皮肤水嫩,会比较好上妆,反之,如果皮肤干,粗糙的话用在好的彩妆都不会有很好的效果水分缘的话,叮的主要成分有玫瑰(保溼)

    2023-12-13
    15900
  • 求。《家,N次方》中苏泉(Spring)的扮演者是谁啊

    吉米。 姓名:吉米 性别:男国籍:中国(内地)职业:其它简介: 吉米是目前国内第一位来往国际间的著名形象设计师;中国第一位签约海外公司的形象设计师;中国第一位举办了时装设计展的造型师;中国历届模特大赛评委、总形象设计师;他先后在意大利威尼斯

    2023-12-13
    21900

发表评论

登录后才能评论
保存