/","",$html);”方法去掉html注释即可。"/> /","",$html);”方法去掉html注释即可。">

首页 >后端开发 >PHP问题 >php怎么去掉html注释

php怎么去掉html注释

藏色散人
藏色散人原创
2021-09-24 10:44:011785浏览

php去掉html注释的方法:1、打开相应PHP代码文件;2、查看html注释的格式;3、通过“preg_replace("//","",$html);”方法去掉html注释即可。

php怎么去掉html注释

本文操作环境:windows7系统、PHP7.1版、Dell G3电脑。

php怎么去掉html注释?

PHP过滤html注释

过滤html注释:

所谓过滤,不过是字符串的匹配与替换,这里我们用到的正则匹配替换函数preg_replace(reg,replace,string);,PHPer都清楚,这个函数的关键在于reg的精确度,那么我们就来试试看吧:

首先要知道html注释的格式,是这样的:33b7431ef34d48f48305906f4fe85bb2。

开始正则的书写

$html = "<!--something-->something";
$html = preg_replace("/<!--.*-->/","",$html);
echo $html;

上面的代码将输出 something,似乎成功了呢,不急,多测试几个例子

$html = "<!--something-->something<!--something-->";
$html = preg_replace("/<!--.*-->/","",$html);
echo $html;

这个例子告诉我们,这样写并不能达到我们期望的效果,于是正则优化成了这样

preg_replace("/<!--.*?-->/","",$html);

嗯,这下满意了,但是html中会存在这样的代码6fc79538f41ba7309e847292db36ab30something1b771f47d72d900ba74308aee59557f0,这是浏览器兼容代码,显然是不能被过滤的,所以我们的正则继续优化,变成这样

preg_replace("/<!--[^\!\[]*?-->/","",$html);

又接着如果html中有3f1c4e4b6b16bbbd69b2ee476dc4f83ab3a6dafcd60bf3cd8aed67a232135b032cacc6d41bbb37262a98f745aa00fbf0的代码,我们又需要改一下我们的匹配规则了,改成了这样

preg_replace("/<!--[^\!\[]*?(?<!\/\/)-->/","",$html);

这样的话我基本上就去掉了我需要去掉的html的注释了!

 

意外收获:在优化过程中,没有多多行注释进行考虑,但规则意外的正常匹配了多行注释,不知道是否因为是从文件读取的html!

 

经测试尚未发现有将正文过滤掉的情况,如有疑问,欢迎留言指正。

推荐学习:《PHP视频教程

以上是php怎么去掉html注释的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn