• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

用PHP&XML编制迷你搜索引擎(四)_PHP

php 搞代码 3年前 (2022-01-25) 17次浏览 已收录 0个评论

[程序实例 ] 用PHP&XML编制迷你搜索引擎

作者 来源

时间 2000年11月30日 阅读次数 247

版本 价值 17

[投他一票]

来源奥索网

用PHP&

。本文来源gao!%daima.com搞$代*!码网1

搞代gaodaima码XML编制迷你搜索引擎

五、mini的搜索引擎

作了如干的铺垫令人激动的时刻到来了。

分页等版式输出和用SQL的搜索引擎差不多我就不加注释了。

第一段为仿sinayahoo的按照类别查询

第二段为搜索查询部分(其实就是把整个树遍历一遍)显示符合的

内容。

说明

“网络狂飙之谜你搜索引擎”适用于小数据量的数据索引查询根据测试当数据量超过1000条以后便不再适用相当浪费主机资源建议您超过400条记录采用mysql等数据库语言构建。希望您通过我的程序对PHP对XML的解析函数有所认识。所有范例程序欢迎大家适用如果您要将其用于自己的主页中请于我联系说明其实就是将其用于的网站的名称告知于我

sfs(sfsz@chinese.com)

以上的所有范例请到我的主页fire.oso.com.cn

上下载我学PHP不到一个月也刚来oso希望文章中的错误之处大家能谅解。以后我将为大家奉献出更多的源创范例。

废话少说尽请看来。

__________________________________________________________

xml2.php

<html>

<body>

<style type=text/css>

td,p,li,input,select {fontsize:12px;}

A:link {fontsize:12px;color:#00007f;}

A:visited {fontsize:12px;color:#00007f;}

A:active {fontsize:12px;color:#ff0000;}

A:hover {fontsize:12px;color:#ff0000;}

.title {fontfamily:Tahoma; width=420 ;fontsize :16px; fontweight :bold; color :steelblue; filter:Shadow(color=“LightGrey”, Direction=“130”);}

.counter{fontfamily:Tahoma; color=green; fontsize : 12px;}

</style>

<?

// XML文件

$file = “demo.xml”;

$pagecount = 10;

class Cweb { //网页

var $name;

var $url;

var $memo;

}

class Cwebs {

var $items = array(Cweb);

var $count = 0;

}

class Csub { //类别

var $name;

var $url;

}

class Csubs {

var $items = array(Csub);

var $count = 0;

}

function xml_parse_from_file($parser, $file)

{

if(!file_exists($file))

die(“Can’t find file “$file”.”);

if(!($fp = @fopen($file, “r”)))

die(“Can’t open file “$file”.”);

while($data = fread($fp, 4096)) {

if(!xml_parse($parser, $data, feof($fp)))

return(false);

}

fclose($fp);

return(true);

}

function start_element($parser, $name, $attrs)

{

global $show,$level,$levelcount,$maxlevel,$hide,$lev,$num,$PHP_SELF;

global $webs,$subs;

$level += 1;

if($level>$maxlevel)$maxlevel=$level;

$levelcount[$level]+=1;

if($hide){

if($level==$lev&&$levelcount[$level]==$num)$hide=FALSE;

}else{

if($level<=$lev)$hide=TRUE;

}

if(!$hide){

switch($name){

case “sub”:

$show=”sub”;

break;

case “web”:

$show=”web”;

break;

default:

break;

}

if($level==$lev+1&&$level>0){

switch($show){

case “sub”:

$subs->count+=1;

$subs->items[$subs->count]->url = “$PHP_SELF?lev=$level&num=$levelcount[$level]”;

break;

case “web”:

$webs->count+=1;

while ( list( $key, $val ) = each( $attrs ) ) {

switch(trim($key)){

case “url” :

$webs->items[$webs->count]->url=trim($val);

break;

case “memo” :

$webs->items[$webs->count]->memo=trim($val);

break;

}

}

break;

default:

break;

}

}

}

}

function stop_element($parser, $name)

{

global $level;

$level -= 1;

}

function data($parser, $data)

{

global $level,$hide,$show,$lev,$levelcount,$num;

global $webs,$subs,$title;

if($level==$lev&&$levelcount[$level]==$num&&trim($data)!=””)$title=trim($data);

if(!$hide)

if(trim($data)!=””&&($level==$lev+1&&$level>0)){

switch($show){

case “sub”:

$subs->items[$subs->count]->name=trim($data);

break;

case “web”:

$webs->items[$webs->count]->name=trim($data);

break;

}

}

}

//main start

global $lev,$num,$PHP_SELF;

global $title,$webs,$subs;

$level = -1;

$hide = TRUE;

$webs = new Cwebs;

$subs = new Csubs;

if($lev==””){$lev=0;$num=1;}

if($page==””)$page=0;

$parser = xml_parser_create();

xml_set_element_handler($parser, “start_element”, “stop_element”);

xml_set_character_data_handler($parser, “data”);

xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);

$ret = xml_parse_from_file($parser, $file);

if(!$ret)

{

die(sprintf(“XML error: %s at line %d”,

xml_error_string(xml_get_error_code($parser)),

xml_get_current_line_number($parser)));

}

xml_parser_free($parser);

echo “


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:用PHP&XML编制迷你搜索引擎(四)_PHP

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址