php解析html类库simple_html_dom
本猪刚开始要做到一个月更一次博,毕竟自己也处于学习阶段,遇到好的例子在这里总结分享。今天要分享的是simple_html_dom,个人理解就是在php文件中编写和js中功能类似的可以控制html文件的代码。具体如下:
可以新建一个空的文件夹用来存放这个小实例。
1. 项目之前需要先下载用到的simple_html_dom类库, [ 点击下载 ]
链接失效可自行搜索simple_html_dom下载;
2. 将下载好的.php文件放到新建的文件夹下,然后创建demo.html和demo.php两个文件;
3. 在两个文件中写代码。
代码
(一)demo.html文件主要包含一些常用的标签,用来在demo.php文件中做测试:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>php_simple_dom</title>
</head>
<body>
<div class="container" id="gbar">
<h1>一娃</h1>
<h2>二娃</h2>
<h3>三娃</h3>
<ul>
<li>吉林</li>
<li>辽宁</li>
<li>上海</li>
<li>广州</li>
</ul>
<input type="text" value="111"/>
<input type="datetime"/>
<textarea>lallallallalala</textarea>
<a href="https://www.baidu.com" class="bar" color="red" style="color:red">百度一下</a>
<img src="https://ss1.baidu.com/6ONXsjip0QIZ8tyhnq/it/u=2812136344,465892702&fm=58"
style="width: 30px;height: 30px">
<span class="gb1">这是span标签</span>
<button>提交</button>
<br>
<table>
<thead>
<tr>
<th>1111</th>
<th>2222</th>
<th>3333</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">121212</td>
<td>343434</td>
<td>565656</td>
</tr>
<tr>
<td>121212</td>
<td>343434</td>
<td>565656</td>
</tr>
<tr></tr>
</tbody>
</table>
<div>hahahhaha</div>
</div>
</body>
</html>
(二)demo.php文件引入了类库文件,然后对html标签进行值获取和样式修改,以及setAtribute:
<?php
// example of how to use basic selector to retrieve HTML contents
header("Content-type: text/html; charset=utf-8");
include('simple_html_dom.php');//引入类库文件
$html = file_get_html('demo.html');//获取html文件
//给页面中的a标签添加类名、设置样式
$html->find('a',0)->setAttribute('class','bar');
$html->find('a',0)->setAttribute('style','color:red');
//打印指定标签内容
foreach($html->find('div#gbar') as $e) echo $e->innertext . '<br>';
//向指定标签中添加内容
$aaa = [1,2,3];
$tr = '';
foreach($aaa as $color)
$tr.="<td>".$color."</td>";
$html->find('tr',3)->innertext = $tr;
//保存修改到指定文件
$html->save('demo.html');
番外:这样操作的缺点会对html文件进行永久性修改。
—–即刷新demo.php文件后修改的内容才会被保存到html文件中,且修改后内容被固定,只有再次修改再次执行demo.php文件时html中的内容才会再次被修改。