用正则使html正当闭合标签

在html代码中,大部门标签是有开始和竣事的,可是有一些标签是没有竣事标签的空元素好比<input /> <br />,他有两种写法,第一种:<input>,第二种:<input/>,此刻html5中,做了统一类型,要求所有的标签必需闭合。

虽然本身写了许多html没留意闭合,都要一一修改岂不贫苦死,于是写了一个PHP正则用于闭合标签函数。代码如下:

<?php /** * 自动闭合HTML空元素标签 by enenba * 如:<br> <input> <img> <link> <meta> <hr> <col> <frame> <isindex> <param> * 转换成闭合的 <... />形式 * * @param string $str html代码 * @return string $str 处理惩罚后闭合的html代码 */ function bihehtml($str) { $search = '/<(img|hr|br|input|link|meta|col|frame|isindex|param)([^\/]*?)(?<!\/)>/i'; return preg_replace($search, '<$1$2 />', $str); } $str = '<img src="http://enenba.com/123123.jpg" />457<img src="http://enenba.com/abv.jpg">124<br>124<input type="text">'; highlight_string(bihehtml($str)); // output /* <img src="http://enenba.com/123123.jpg" />457<img src="http://enenba.com/abv.jpg" />124<br />124<input type="text" /> */ ?>

用到的正则

<(img|hr|br|input|meta|link|col|frame|isindex|param)([^\/]*?)(?<!\/)>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7876.html