php 读取(解析)html文档,并将读取到的文档转为数组(数组保留html嵌套格式) 10
需求是这样的:需要读取整个html,并记录每个标签嵌套关系;想要的效果如下所示:HTML样例:<!DOCTYPEhtml><htmllang="cn"><head><me...
需求是这样的:需要读取整个html,并记录每个标签嵌套关系;想要的效果如下所示:
HTML样例:
<!DOCTYPE html>
<html lang="cn">
<head>
<meta charset="UTF-8">
<title>测试站点1</title>
<meta name="keywords" content="测试,测试">
</head>
<body>
<div class="header_box">
<div class="header">
<ul class="a-nav header-down-nav">
<li class="a-nav-item">首页</li>
<li class="a-nav-item">案例</li>
</ul>
</div>
</div>
</body>
</html>
想要的php效果:
$HtmlArr = array(
array(
'la'=>'html',//标签
'val'=>'',//值
'attribute'=>'lang="cn"',//属性
'children'=>array( //子标签
array(
'la'=>'head',
'val'=>'',
'attribute'=>'',
'children'=>array(
array(),
array(),
array(),
)
),
array(
'la'=>'body',
'val'=>'',
'attribute'=>'',
'children'=>array()
)
),
),
); 展开
HTML样例:
<!DOCTYPE html>
<html lang="cn">
<head>
<meta charset="UTF-8">
<title>测试站点1</title>
<meta name="keywords" content="测试,测试">
</head>
<body>
<div class="header_box">
<div class="header">
<ul class="a-nav header-down-nav">
<li class="a-nav-item">首页</li>
<li class="a-nav-item">案例</li>
</ul>
</div>
</div>
</body>
</html>
想要的php效果:
$HtmlArr = array(
array(
'la'=>'html',//标签
'val'=>'',//值
'attribute'=>'lang="cn"',//属性
'children'=>array( //子标签
array(
'la'=>'head',
'val'=>'',
'attribute'=>'',
'children'=>array(
array(),
array(),
array(),
)
),
array(
'la'=>'body',
'val'=>'',
'attribute'=>'',
'children'=>array()
)
),
),
); 展开
展开全部
可以使用正则表达式来解决这个问题
具体的代码很多不详细写了,举个例子给题主吧
<?php
$htmlStr = '<li>首页</li>';
preg_match_all('/<li>.*?<\/li>/', $htmlStr , $res);
$ret = preg_replace('/(<li>|<\/li>)/', '', $res[0][0]);
//输出res
//var_dump($res);
echo $ret;
最终输出的结果为:首页
在这个例子上题主所需要的值基本都可以用正则算法过滤出来
希望能帮到题主
如果可以,还请采纳
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以用file函数进行操作<?php header('Content-Type:text/html;charset=utf-8'); $arr = file(文件路径); $data = array(); if($arr) { foreach($arr as $vo) { if(strpos(":") > 0) { //这边看到你文档里面的是中文的":" $tmp = @explode(":", $vo); $data[] = array( "name" => $tmp[0], "value" => $tmp[1], ); } } } var_dump($data); //一下就可以看到解析出来的内容了?>
追问
请问,我要如何得到准确的嵌套关系?你仔细看我的问题没有?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看下get_str_html,或是试下xml的解析。就能获得类似数组的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询