html标签闭合在线检测,HP自动检查html标签是否闭合(示例代码)
function HtmlClose($body) {$strlen_var = strlen($body);//不包含 html 标签
if (strpos($body, ‘
}//html 代码标记
$html_tag = 0;//摘要字符串
$summary_string = ‘‘;/**
* 数组用作记录摘要范围内出现的 html 标签
* 开始和结束分别保存在 left 和 right 键名下
* 如字符串为:
a,假设 p 未闭合
* 数组则为:array(‘left‘ => array(‘h3‘, ‘p‘, ‘b‘), ‘right‘ => ‘b‘, ‘h3‘);
* 仅补全 html 标签,
$html_array = array(‘left‘ => array(), ‘right‘ => array());for ($i = 0; $i < $strlen_var; ++$i) {$current_var = substr($body, $i, 1);if ($current_var == ‘
$html_tag = 1;$html_array_str = ‘‘;
}else if ($html_tag == 1) {//一段 html 代码结束
if ($current_var == ‘>‘) {/**
* 去除首尾空格,如
< img src="" / > 等可能出现首尾空格*/
$html_array_str = trim($html_array_str);/**
* 判断最后一个字符是否为 /,若是,则标签已闭合,不记录*/
if (substr($html_array_str, -1) != ‘/‘) {//判断第一个字符是否 /,若是,则放在 right 单元
$f = substr($html_array_str, 0, 1);if ($f == ‘/‘) {//去掉 /
$html_array[‘right‘][] = str_replace(‘/‘, ‘‘, $html_array_str);
}else if ($f != ‘?‘) {//判断是否为 ?,若是,则为 PHP 代码,跳过
/**
* 判断是否有半角空格,若有,以空格分割,第一个单元为 html 标签
* 如
*/
if (strpos($html_array_str, ‘ ‘) !== false) {//分割成2个单元,可能有多个空格,如:
$html_array[‘left‘][] = strtolower(current(explode(‘ ‘, $html_array_str, 2)));
}else{/**
* * 若没有空格,整个字符串为 html 标签,如:
等
* 统一转换为小写*/
$html_array[‘left‘][] = strtolower($html_array_str);
}
}
}//字符串重置
$html_array_str = ‘‘;$html_tag = 0;
}else{/**
* 将< >之间的字符组成一个字符串
* 用于提取 html 标签*/
$html_array_str .= $current_var;
}
}else{//非 html 代码才记数
--$size;
}$ord_var_c = ord($body{$i});switch (true) {case (($ord_var_c & 0xE0) == 0xC0):
//2 字节
$summary_string .= substr($body, $i, 2);$i += 1;break;case (($ord_var_c & 0xF0) == 0xE0):
//3 字节
$summary_string .= substr($body, $i, 3);$i += 2;break;case (($ord_var_c & 0xF8) == 0xF0):
//4 字节
$summary_string .= substr($body, $i, 4);$i += 3;break;case (($ord_var_c & 0xFC) == 0xF8):
//5 字节
$summary_string .= substr($body, $i, 5);$i += 4;break;case (($ord_var_c & 0xFE) == 0xFC):
//6 字节
$summary_string .= substr($body, $i, 6);$i += 5;break;default:
//1 字节
$summary_string .= $current_var;
}
}if ($html_array[‘left‘]) {/**
* 比对左右 html 标签,不足则补全*/
/**
* 交换 left 顺序,补充的顺序应与 html 出现的顺序相反
* 如待补全的字符串为:
abcabc
abc
* 补充顺序应为:
*/
$html_array[‘left‘] = array_reverse($html_array[‘left‘]);foreach ($html_array[‘left‘] as $index => $tag) {//判断该标签是否出现在 right 中
$key = array_search($tag, $html_array[‘right‘]);if ($key !== false) {//出现,从 right 中删除该单元
unset($html_array[‘right‘][$key]);
}else{//没有出现,需要补全
$summary_string .= ‘‘ . $tag . ‘>‘;
}
}
}return $summary_string;
}
html标签闭合在线检测,HP自动检查html标签是否闭合(示例代码)相关推荐
- python贴吧发帖脚本-Python实现自动添加脚本头信息的示例代码
前言 每个人写脚本时的格式都会有所不同,有的会注明脚本本身的一些信息,有的则开门见山,这在小团队里其实没什么,基本别人做什么你也都知道,但如果放到大的团队就比较麻烦了,因为随着人数的增多,脚本成指数增 ...
- ai自动写JAVA代码,人工智能自动写作软件2.0时代(示例代码)
大家好,人工智能人工智能(ai)的定义是计算机科学的一个分支,自20世纪70年代以来被称为世界三大最先进技术之一(空间技术.能源技术和人工智能).它有许多定义,它们都是有意义的,没有对错之分.人工智能 ...
- js输出语句()可以包含html标签,JS简介,JS如何实现输入输出语句、注释(示例代码)...
JavaScript 简介 JavaScript 是世界上最流行的编程语言 可用于 HTML 和 web,更可广泛用于服务器.PC.笔记本电脑.平板电脑和智能手机等设备 JavaScript一种直译式 ...
- wan口有流量但电脑上不了网_路由器wan口流量_双WAN口路由器配置(WAN口设置/WAN口在线检测/流量均衡控制)_路由器检测不到wan...
双WAN口路由器配置(WAN口设置/WAN口在线检测/流量均衡控制) 不少网吧都采用了双WAN路由器的双WAN口接入设计,但是对于如何使用好这样的设备,用户有不少疑问,我们针对这种路由器中的WAN口设 ...
- 五大APP安全在线检测平台对比
五大APP安全在线检测平台对比 时间 2017-10-31 标签 APP自动化检测 Android安全 移动安全 ios安全 栏目 系统安全 原文 http://1425831735.blog. ...
- python刷今日头条访问量_Python 自动刷博客浏览量实例代码
怎么利用python爬取csdn博客访问量例子 如何使用python来爬取自己博客访问量承认吧,小编们都是在深夜里崩溃的俗人.晚安,世界. 博客网站上有访问量这个记录么 如果有就可以抓取网站下来,正则 ...
- 24个Web前端人员不能错过的在线检测网站汇总
标签: Html检测 / css错误检测 / 代码规范 / seo工具 在用IE浏览网站时,发现下面显示"网页上有错误",虽然不影响浏览,但总归让人感觉不舒服,大概多数站长都遇到过 ...
- 实时获取ccd图像_薄膜瑕疵在线检测系统0.1mm检测精度_实时在线检测
原标题:薄膜瑕疵在线检测系统检测精度_实时在线检测 在薄膜的实际生产过程中,由于各方面因素的影响,薄膜表面会出现诸如孔洞.蚊虫.黑点.晶点.划伤.斑点等瑕疵,严重影响了薄膜的质量,给生产商带来了不必要 ...
- 一些在线检测网站打开速度工具大分享
一些在线检测网站打开速度工具大分享 网页载入速度对于一个网站来讲很关键,Google已经将一个网站的载入速度列入了网站关键字seo排名的考虑因素当中,也就是说如果你的网站有足够的内容,而且载入速度比别 ...
最新文章
- Ubuntu 镜像使用帮助
- 庖丁解牛迭代器,聊聊那些藏在幕后的秘密
- CSS 公共样式分享
- Python3网络爬虫——(4)urllib.error异常处理
- 2 image pil 转_pdf转图片,php语言和Java语言的两种方法
- codeforces1485 F. Copy or Prefix Sum(dp)
- 前端与java绘制三维图_使用HTML5 Canvas绘制三维波浪图算法和实现
- 基于ConvLSTM的伦敦空气质量预测(1) 数据处理
- setAttribute在设置属性 ieBug
- TextSnake文本检测
- linux 文件查找_Linux中的文件内查找小技巧
- 数学软件Maple使用教程
- sql 多表连接多条件匹配查询,按匹配度排序
- 新手可以操作的日赚50元的网赚项目
- 浏览器是如何渲染网页的
- 通过精读一本英文技术书籍搞定英语
- 钓鱼邮件检测(本科毕设)
- 获取当天零点/最晚时间戳
- C#WinFormRS232串口工具
- 三相直流无刷电机驱动