php正则去除网页中所有的html,js,css,注释的实现方法

如下所示:

$search = array ("'<script[^>]*?>.*?</script>'si", // 去掉 javascript
 "'<style[^>]*?>.*?</style>'si",  // 去掉 css
 "'<[/!]*?[^<>]*?>'si",      // 去掉 HTML 标记
 "'<!--[/!]*?[^<>]*?>'si",      // 去掉 注释 标记
 "'([rn])[s]+'",  // 去掉空白字符
 "'&(quot|#34);'i",  // 替换 HTML 实体

 "'&(amp|#38);'i",
 "'&(lt|#60);'i",
 "'&(gt|#62);'i",
 "'&(nbsp|#160);'i",
 "'&(iexcl|#161);'i",
 "'&(cent|#162);'i",
 "'&(pound|#163);'i",
 "'&(copy|#169);'i",
 "'&#(d+);'e");   // 作为 PHP 代码运行

$replace = array ("",
 "",
 "",
 "",
 "\1",
 "\"",
 "&",
 "<",
 ">",
 " ",
 chr(161),
 chr(162),
 chr(163),
 chr(169),
 "chr(\1)");
//$document为需要处理字符串,如果来源为文件可以$document = file_get_contents($filename);
$out = preg_replace($search, $replace, $document);

也可以使用php的内置函数strip_tags()清除html,js,注释等标记

以上就是小编为大家带来的php正则去除网页中所有的html,js,css,注释的实现方法全部内容了,希望大家多多支持我们~

(0)

相关推荐

  • 使用正则去除php代码中的注释方法

    测试代码 文件:a.PHP <?php /** * 加法计算 * 测试 */ // 设定$a的值 $a = 10; // 设定$b的值 $b = 5; // 加法 $c = $a + $b; # 输出结果 echo $c; 文件:test.php echo "源码:<br />"; show_source('./a.php'); echo "<hr />去除注释后:<br />"; highlight_string(remo

  • php使用正则表达式去掉html中的注释方法

    最近在项目中在需要输出浏览器中的源文件需要去掉html中的注释,在网上看了很多的方案,不过很多的答案都是一样的,并不能解决我的问题,于是就自己写正则表达式,也对正则有了更加深刻的理解. 首先比较基础的是: $a = '<!--ceshi-->ceshi'; $a = preg_replace('#<!--.*-->#' , '' , $a); var_dump($a); 上面的代码会输出ceshi. 但是如果是下面的字符串的话,就不能达到我们希望的效果了 $a = '<!--

  • PHP正则删除html代码中a标签并保留标签内容的方法 原创

    本文实例讲述了PHP正则删除html代码中a标签并保留标签内容的方法.分享给大家供大家参考,具体如下: 一.问题: 有HTML代码如: <div>欢迎访问我们<a href=http://www.jb51.net>www.jb51.net</a></div> 要求正则删除a标签,同时保留a标签内容,如下: <div>欢迎访问我们www.jb51.net</div> 二.解决方法: $str = "<div>欢迎访

  • php正则删除html代码中class样式属性的方法 原创

    本文实例讲述了php正则删除html代码中class样式属性的方法.分享给大家供大家参考,具体如下: 一.问题: 有如下代码: <div class="jb51"><div class="jb51_txt">欢迎访问我们</div></div> 要求:删除HTML代码中的class属性. 二.实现方法: php实现代码如下: $str='<div class="jb51"><div

  • PHP正则删除HTML代码中宽高样式的方法

    本文实例讲述了PHP正则删除HTML代码中宽高样式的方法.分享给大家供大家参考,具体如下: 因工作需要,需要采集html,并把html内容保存到数据库中.为了避免影响使用,宽高样式需要删除.例如图片和div中的width, height等. 不过采集到的html中,样式的写法各有不同,例如大小写,中间有空格等. 因此使用php正则编写了下面这个方法,对这些奇葩的样式进行过滤. 代码如下: <?php /** * 清除宽高样式 * @param String $content 内容 * @retu

  • php正则删除img标签的方法示例 原创

    本文实例讲述了php正则删除img标签的方法.分享给大家供大家参考,具体如下: 一.问题 正则抓取过程中需要删除正文中的img标签,如: <div>欢迎访问我们<img src="http://www.jb51.net/images/logo.gif" /></div> 要求删除后变成: <div>欢迎访问我们</div> 二.解决方法: $str='<div>欢迎访问我们<img src="htt

  • php过滤HTML标签、属性等正则表达式汇总

    $str=preg_replace("/\s+/", " ", $str); //过滤多余回车 $str=preg_replace("/<[ ]+/si","<",$str); //过滤<__("<"号后面带空格)   $str=preg_replace("/<\!--.*?-->/si","",$str); //注释 $str=p

  • PHP正则表达式过滤html标签属性(DEMO)

    过滤html标签在php中可以有内置的函数了,但它过滤的太干净了,我们就整理了一下些利用正则来过滤指定html标签的例子,具体如下所示. 采集的时候有时候需要过滤掉多余的标签属性,比如 img标签过滤掉除了src属性之外的所有属性例如删除titile alt等属性以及一些脚的onclick属性等. 例如 过滤除了src之外的所有属性: 复制代码 代码如下: $str= preg_replace('/\s(?!src)[a-zA-Z]+=[\'\"]{1}[^\'\"]+[\'\&quo

  • php正则过滤html标签、空格、换行符的代码(附说明)

    复制代码 代码如下: $str=preg_replace("/\s+/", " ", $str); //过滤多余回车 $str=preg_replace("/<[ ]+/si","<",$str); //过滤<__("<"号后面带空格) $str=preg_replace("/<\!--.*?-->/si","",$str); //

  • php 正则 过滤html 的超链接

    <?php echo preg_replace("/(?<=href=)([^\>]*)(?=\>)/i","#", "<a href='www.csdn.net'>你好,点这里看看</a><a href='www.jb51.net'>你好,点这里看看</a>"); ?> 正则:/(?<=href=)([^\>]*)(?=\>)/ (?<=exp

  • php和editplus正则表达式去除空白行

    去除字符串内部的空行: 复制代码 代码如下: $str = preg_replace("/(\s*?\r?\n\s*?)+/","\n",$str); 去除全部的空行,包括内部和头尾: 复制代码 代码如下: $str = preg_replace('/($\s*$)|(^\s*^)/m', '',$str); editplus中替换空白行的正则表达式: 正则表达式:^[\t\n ]*\n

随机推荐