首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
hash
c语言
regex
timezone
merge
heatmap
controller
callback
grid
perl
lua
web
subset
blob
email
uml
chat
copy
schema
list
format
stream
integer
ascii
testing
dll
hook
substring
httpclient
iostream
solr
const
runtime
bit
future
post
select
rsa
tags
cPlusPlus
nodejs
object
default
case
string
command
audio
foreach
node.js
match
jsp
require
shell
cSharp
js
eval
erlang
join
heap
replace
java
hashcode
golang
utf-8
yaml
php7
import
sum
python3
vbscript
instance
jar
main
search
python
filter
express
install
emoji
当前位置:
开发笔记
>
编程语言
> 正文
用PHP&XML编制迷你搜索引擎(三)
作者:桑正青0V1 | 来源:互联网 | 2014-07-17 11:58
四、在第三章程序的基础上,可以显示一段子树。同第二章的代码我就不再注释了。下面的代码是我们的迷你搜索引擎的基
四、在第三章程序的基础上
,
可以显示一段子树。
同第二章的代码我就不再注释了。
下面的代码是我们的迷你搜索引擎的基础。
因为
,
要显示出一个字类别
(
如程序设计
-
>
PHP
-
>
)
的信息就要用到他。
我们依照元素的层数和他在当层的第几号来对他进行定位
如
:
links
(
0
,
1
)
+
-
-
-
-
web
(
1
,
1
)
+
-
-
-
-
sub
(
1
,
2
)
|
+
-
-
-
-
web
(
2
,
1
)
|
+
-
-
-
-
sub
(
2
,
2
)
|
|
+
-
-
-
-
web
(
3
,
1
)
|
|
+
-
-
-
-
sub
(
3
,
2
)
:
:
:
__________________________________________________________
<
html
>
<
body
>
// XML文件
$file = "demo.xml";
// 解析XML文件的函数
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 $level,$levelcount,$maxlevel,$hide,$lev,$num,$PHP_SELF;
$level += 1;
if($level>$maxlevel)$maxlevel=$level;
$levelcount[$level]+=1;
if($hide){ //判断是否在子树的范围内 $hide==FALSE 为在
if($level==$lev&&$levelcount[$level]==$num)$hide=FALSE;
}else{
if($level<=$lev)$hide=TRUE;
}
if(!$hide){
echo "
";
for($i=1;$i<=($level-1-$lev);$i++)echo"| ";
if($level-$lev>0)echo"+----";
echo "
".
//加上每个元素节点的联接
trim($name)."
";
while ( list( $key, $val ) = each( $attrs ) ) {
echo "
$key => $val
; ";
}
}
}
function stop_element($parser, $name)
{
global $level;
$level -= 1;
}
function data($parser, $data)
{
global $level,$hide;
if(!$hide)
if(trim($data)!=""){
echo trim($data);
}
}
//main start
global $hide,$lev,$num,$PHP_SELF;
$level = -1;
$hide = TRUE;
echo "
Root
";
if($lev==""){$lev=0;$num=1;}
$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);
?>
<
/
body
>
<
/
html
>
php
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
php
次小生成树问题的高效求解
本文探讨了如何通过最小生成树(MST)来计算严格次小生成树。在处理过程中,需特别注意所有边权重相等的情况,以避免错误。我们首先构建最小生成树,然后枚举每条非树边,检查其是否能形成更优的次小生成树。 ...
[详细]
蜡笔小新 2024-12-28 13:42:43
php
OPPO黄页服务即将停止
OPPO黄页服务因业务调整即将停止,用户需了解具体卸载路径及受影响的机型。 ...
[详细]
蜡笔小新 2024-12-28 13:37:31
php
如何进行暂估入库的会计分录处理?
本文详细介绍了暂估入库的会计分录处理方法,包括账务处理的具体步骤和注意事项。 ...
[详细]
蜡笔小新 2024-12-28 12:26:30
php
PHP 编程疑难解析与知识点汇总
本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ...
[详细]
蜡笔小新 2024-12-28 12:22:34
hash
深入理解OAuth认证机制
本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ...
[详细]
蜡笔小新 2024-12-28 12:07:46
hash
极大似然估计(MLE)及其3D可视化解析
本文详细介绍了极大似然估计(Maximum Likelihood Estimation, MLE)的推导过程,并通过3D可视化展示其在概率密度函数中的应用。我们将探讨如何利用MLE来估计参数,以及它在实际问题中的重要性。 ...
[详细]
蜡笔小新 2024-12-28 12:03:58
hash
2023 ARM嵌入式系统全国技术巡讲
2023 ARM嵌入式系统全国技术巡讲旨在分享ARM公司在半导体知识产权(IP)领域的最新进展。作为全球领先的IP提供商,ARM在嵌入式处理器市场占据主导地位,其产品广泛应用于90%以上的嵌入式设备中。此次巡讲将邀请来自ARM、飞思卡尔以及华清远见教育集团的行业专家,共同探讨当前嵌入式系统的前沿技术和应用。 ...
[详细]
蜡笔小新 2024-12-28 11:58:48
email
解决 IIS 中 PHP 页面无法访问的问题
本文介绍如何解决在 IIS 环境下 PHP 页面无法找到的问题。主要步骤包括配置 Internet 信息服务管理器中的 ISAPI 扩展和 Active Server Pages 设置,确保 PHP 脚本能够正常运行。 ...
[详细]
蜡笔小新 2024-12-28 11:54:54
email
Python 异步编程:深入理解 asyncio 库(上)
本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ...
[详细]
蜡笔小新 2024-12-28 11:52:00
email
周期性出现的时间戳字段异常问题
探讨一个老旧 PHP MySQL 系统中,时间戳字段不定期出现异常值的问题及其可能原因。 ...
[详细]
蜡笔小新 2024-12-28 11:46:54
email
国内BI工具迎战国际巨头Tableau,稳步崛起
尽管商业智能(BI)工具在中国的普及程度尚不及国际市场,但近年来,随着本土企业的持续创新和市场推广,国内主流BI工具正逐渐崭露头角。面对国际品牌如Tableau的强大竞争,国内BI工具通过不断优化产品和技术,赢得了越来越多用户的认可。 ...
[详细]
蜡笔小新 2024-12-28 11:12:44
list
优化ListView性能
本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ...
[详细]
蜡笔小新 2024-12-28 10:36:30
list
郑州大学在211高校中的地位与排名解析
本文将详细解读郑州大学作为一所位于河南省的211和双一流B类高校,在全国211高校中的地位与排名,帮助高三学生更好地了解这所知名学府的实力与发展前景。 ...
[详细]
蜡笔小新 2024-12-28 10:08:34
list
深入理解 Oracle 存储函数:计算员工年收入
本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ...
[详细]
蜡笔小新 2024-12-28 09:49:42
list
优化ASM字节码操作:简化类转换与移除冗余指令
本文探讨如何利用ASM框架进行字节码操作,以优化现有类的转换过程,简化复杂的转换逻辑,并移除不必要的加0操作。通过这些技术手段,可以显著提升代码性能和可维护性。 ...
[详细]
蜡笔小新 2024-12-28 09:35:00
桑正青0V1
这个家伙很懒,什么也没留下!
Tags | 热门标签
hash
c语言
regex
timezone
merge
heatmap
controller
callback
grid
perl
lua
web
subset
blob
email
uml
chat
copy
schema
list
format
stream
integer
ascii
testing
dll
hook
substring
httpclient
iostream
RankList | 热门文章
1
matlabcvx工具包安装
2
Vue.ls.的用法
3
spring boot——spring boot的基本配置——spring boot整合mybatis——本地实例运行——保存操作——int类型...
4
C#高级编程:(一)Enterprise Services中遇到的问题
5
Nagios Plugin for Cacti (npc插件) Download 下载
6
VUEMVVMpart10Computed
7
element按钮默认选中状态
8
腾达路由器设置后上不了网怎么办?
9
吐槽还能得免费门票和机械键盘?HC大会就是和别人不一样!
10
如何跨站调用php(2023年最新整理)
11
第0章习题 Accelerated C++学习笔记2
12
python绘制拟合回归散点图_机器学习之利用Python进行简单线性回归分析
13
系数_《LeetCode之每日一题》:278.杨辉三角
14
玩转系统|初遇ChatGPT,我和TA的第一次约会
15
springboot 2.0 mybatis mapperlocations扫描多个路径
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有