介绍
这篇文章主要为大家展示了php如何使HTML标签自动补全闭合函数,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“php如何使HTML标签自动补全闭合函数”这篇文章吧。
HTML是什么
HTML的全称为超文本标记语言,它是一种标记语言,包含了一系列标签。通过这些标签可以将网络上的文档格式统一,使分散的互联网资源连接为一个逻辑整体,html文本是由html命令组成的描述性文本,html命令可以说明文字,图形,动画,声音,表格,链接等,主要和css + js配合使用并构建优雅的前端网页。
简单解释一些代码:
第一个~ (& lt;[^的在]+ ?祝辞)~如果
这个正则是匹配& lt;………在中的内容。简单说是所有的& lt;标签祝辞。
第二个~ & lt; ([a-z0-9] +)[^/祝辞]* ?/祝辞~如果
这个正则是匹配& lt;……/祝辞中的内容。是单闭合标签如& lt; br/比;
第三个~ & lt;/([a-z0-9] +)[^/祝辞]* ?祝辞~如果
这个正则是匹配& lt;/4侵械哪谌荨R簿褪墙崾昵┤? lt;/a>
第四个~ & lt; ([a-z0-9] +)[^/祝辞]* ?祝辞~如果
匹配& lt;……祝辞中的内容。这和第一个是不一样的,这一个是真正的html标签,因为html标签只有数字和字母,如:& lt; h2> & lt;/h2>
第五个~ & lt; !——* ?——祝辞~如果
不用解释了,HTMl的注释
剩下的可以看源代码了,php源码附件:
代码如下:
& lt; ? php /* *, *,取HTML,并自动补全闭合, *, *,param html 美元; *, *,param length 美元; *, *,param 美元最终获得; */, function subHtml (html、美元,长度=50美元),{, 时间=美元result & # 39; & # 39;,, 数组$ tagStack =, ();, 将$ len =0;祝福; contents 美元;=,preg_split (“~ (& lt;[^的在]+ ?祝辞)~ si",,美元html,, 1,, PREG_SPLIT_NO_EMPTY |, PREG_SPLIT_DELIM_CAPTURE),, foreach (contents 美元;as 标签美元),{, if (修剪(标签),==,““),继续,, if (preg_match (“~ & lt ([a-z0-9] +)[^/祝辞]* ?/祝辞~ si",,标签美元)),{, result 美元。=,标签;美元, },else if (preg_match (“~ & lt;/([a-z0-9] +)[^/祝辞]* ?祝辞~ si",,标签,美元,$匹配)),{, if ($ tagStack [count ($ tagStack) 1],==, $匹配[1]),{, 最后(tagStack美元),, result 美元。=,标签;美元, }, },else if (preg_match (“~ & lt ([a-z0-9] +)[^/祝辞]* ?祝辞~ si",,标签,美元,$匹配)),{, array_push (tagStack美元,,$匹配[1]),, result 美元。=,标签;美元, },else if (preg_match (“~ & lt !——* ?——祝辞~ si",,标签美元)),{, result 美元。=,标签;美元, {},else if (len 美元;+,mstrlen(标签),& lt;,美元长度),{, result 美元。=,标签;美元, len 美元;+=,mstrlen ($ tag),, {},else $ str =, msubstr($标签,,0,,length 美元;作用;len 美元;+,1),, result 美元。=,str;美元, 休息,, }, }, },while (!空(tagStack美元)),{, result 美元。=,& # 39;& lt;/& # 39;,只最后(tagStack美元),只& # 39;祝辞& # 39;,, }, return 结果;美元, },/* *, *,取中文字符串, *, *,param string 美元;字符串, *, *,param start 美元起始位, *, *,param length 美元;长度, *, *,param charset 美元;编码, *, *,param dot 美元;附加字串, */, function msubstr(字符串,美元,美元开始,长度,美元,美元dot =, & # 39; & # 39;,, charset 美元;=,& # 39;utf - 8 # 39;), {, string 美元;=,str_replace(数组(& # 39;,amp; & # 39;,, & # 39;和“& # 39;,,& # 39;,lt; & # 39;,, & # 39;和gt; & # 39;,, & # 39;,, & # 39;),,数组(& # 39;,& # 39;,,& # 39;“& # 39;,,& # 39;& lt; & # 39;,, & # 39;祝辞& # 39;,,& # 39;,& # 39;),,美元字符串),, if (strlen(字符串),& lt;=,美元长度),{, return 字符串;美元, }, if (函数(字符集)美元,==,& # 39;utf - 8 # 39;), {, $ n =, tn 美元;=,noc 美元;=,0;, while (n 美元;& lt;, strlen(字符串)美元),{, $ t =,奥德($ string [$ n]);, if (t 美元;==,9,| |,t 美元;==,10,| |,(=32,& lt; t 美元;,,,t 美元;& lt;=, 126)), {, 将$ tn =1;祝福; $ n + +,, },elseif (=194, & lt; t 美元;,,,t 美元;& lt;=, 223), {, tn 美元;=,2,, +=$ n 2,, },elseif (=224, & lt; t 美元;,,,t 美元;& lt;=, 239), {, 将$ tn =3;祝福; +=$ n 3,, },elseif (=240, & lt; t 美元;,,,t 美元;& lt;=, 247), {,=$ tn 4,, +=$ n 4,, },elseif (=248, & lt; t 美元;,,,t 美元;& lt;=, 251), {, 将$ tn =5;祝福; +=$ n 5。, },elseif (==t 美元;252年,| |,t 美元;==,253),{, 将$ tn =6;祝福; +=$ n 6。, {},else $ n + +,, }, noc + +美元;, if (noc 美元;祝辞=,美元长度),{, 休息,, }, }, if (noc 美元;祝辞,美元长度),{, n 美元;-=,tn;美元, }, 美元$ strcut =, substr(字符串,,0,,$ n),, {},else null null null null null null null null null null null null null null null null null null null null null null nullphp如何使HTML标签自动补全闭合函数