php过滤所有html标签的几种方法
//用正则过滤html标签
代码如下 | 复制代码 |
$html_body ="<a href='#'>www.111cn.net</a>"; preg_replace("/(</?)(w+)([^>]*>)/e", "'\1'.strtoupper('\2').'\3'", $html_body); |
//用php教程自带函数strip_tags
代码如下 | 复制代码 |
echo strip_tags("hello <b>world!www.111cn.net</b>"); |
//用户自定义
代码如下 | 复制代码 |
function filterhtml($str) { $str=eregi_replace("</*[^<>]*>", '', $str); $str=str_replace(" ", '', $str); $str=str_replace(" ", '', $str); $str=str_replace(" ", '', $str); $str=str_replace("::", ':', $str); $str=str_replace(" ", '', $str); //$str=str_replace(" ", '', $str); return $str; } |
//其它可能对你有用的方法
1,过滤所有html标签的正则表达式:
代码如下 | 复制代码 |
</?[^>]+> |
2,过滤所有html标签的属性的正则表达式:
代码如下 | 复制代码 |
$html = preg_replace("/<([a-za-z]+)[^>]*>/","<\1>",$html); |
3,过滤部分html标签的正则表达式的排除式(比如排除<p>,即不过滤<p>):
代码如下 | 复制代码 |
</?[^pp/>]+> |
4,过滤部分html标签的正则表达式的枚举式(比如需要过滤<a><p><b>等):
代码如下 | 复制代码 |
</?[aappbb][^>]*> |
5,过滤部分html标签的属性的正则表达式的排除式(比如排除alt属性,即不过滤alt属性):
代码如下 | 复制代码 |
s(?!alt)[a-za-z]+=[^s]* |
6,过滤部分html标签的属性的正则表达式的枚举式(比如alt属性):
代码如下 | 复制代码 |
(s)alt=[^s]* |
//string ereg_replace ( string $pattern , string $replacement , string $string )
/*
修改后的字符串返回。如果没有找到匹配的字符串,那么将返回不变
*/
//实例
代码如下 | 复制代码 |
$string = "this 111cn.net a test"; echo str_replace(" 111cn.net", " was", $string); echo ereg_replace("( )111cn.net", "\1was", $string); echo ereg_replace("(( )111cn.net)", "\2was", $string); |
/*
有一点要注意的是,如果你使用一个整数参数值作为替代,您可能不会得到你期望的结果。这是因为ereg_replace()将解释为一个字符值序数,并套用。例如
*/
代码如下 | 复制代码 |
$num = 4; /* this will work. */ |
//来看一个用ereg_replace获取连接代码
代码如下 | 复制代码 |
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", "<a href="\0">\0</a>", $text); |
//取字符串中一部份
代码如下 | 复制代码 |
$output = ereg_replace("your regexp here", "<font color=red>\0</font>", $input) ; print $output; |
//再来看一个更复杂的实例
代码如下 | 复制代码 |
function strip_urls($text, $reppat) { if(!$reppat){ $reppat = "text [url]"; } $aimps教程tr = 'php教程_strip_urls_function_by_real-php-geek'; //change $aimps教程tr to anything you want. $impstr = md5($aimpstr); $text = str_replace('</a>', '</a>' . $impstr, $text); $text = explode($impstr, $text); $n = 0; $texta = array(); $reppat = str_ireplace(array('text', 'url'), array('\4', '\2'), $reppat); foreach ($text as $text) { $texta[$n] = ereg_replace("<a(.*)href="(.*)"(.*)>(.*)</a>", $reppat, $text); $n++; } $textb = implode("</a>", $texta); return $textb; } |
//examples:
代码如下 | 复制代码 |
$string_of_text = '<a href="http://www.111cn.net/">php</a> rocks. <a href="http://www.111cn.net/">网页制作教程教程</a> also!'; echo strip_urls($string_of_text, "text"); echo strip_urls($string_of_text, "url"); echo strip_urls($string_of_text, "text [url]"); echo strip_urls($string_of_text, null); |
/*
说明:
在 subject 中搜索 pattern 模式的匹配项并替换为 replacement。如果指定了 limit,则仅替换 limit 个匹配,如果省略 limit 或者其值为 -1,则所有的匹配项都会被替换。
replacement 可以包含 \n 形式或(自 php 4.0.4 起)$n 形式的逆向引用,首选使用后者。每个此种引用将被替换为与第 n 个被捕获的括号内的子模式所匹配的文本。n 可以从 0 到 99,其中 \0 或 $0 指的是被整个模式所匹配的文本。对左圆括号从左到右计数(从 1 开始)以取得子模式的数目。
对替换模式在一个逆向引用后面紧接着一个数字时(即:紧接在一个匹配的模式后面的数字),不能使用熟悉的 \1 符号来表示逆向引用。举例说 \11,将会使 preg_replace() 搞不清楚是想要一个 \1 的逆向引用后面跟着一个数字 1 还是一个 \11 的逆向引用。本例中的解决方法是使用 ${1}1。这会形成一个隔离的 $1 逆向引用,而使另一个 1 只是单纯的文字。
*/
//方法一
代码如下 | 复制代码 |
preg_match_all('/<(a|a)[s]{0,1}[w=":()]*>[ ]*(check user)[ ]*</(a|a)>/i',$string,$matches); |
//方法二
代码如下 | 复制代码 |
preg_match_all('/<a[dd]*>check user</a>/i',$string,$matches); print_r($matches[0]); |
//方法三
代码如下 | 复制代码 |
preg_match_all('/<a[^>]*>[^<]*</a>/i',$string,$matches); print_r($matches[0]); |
//方法四
代码如下 | 复制代码 |
preg_match_all('/<a.+?>check user</a>/is',$str,$arr); |
//方法五
代码如下 | 复制代码 |
preg_match_all('/<a.+?>check user</a>/is',$str,$arr); |
//php教程 curl实例
代码如下 | 复制代码 |
session_write_close(); $pageurl = "http://www.111cn.net/index.html"; //then you need to fix pathing to absolute preg_match_all ( $search, $html, $a_matches ); |
//php fopen实例
代码如下 | 复制代码 |
$file = fopen("http://www.111cn.net/","r"); //读取远程文件 $file = fopen("a.txt","r");//读取本地文件 |
//php file_get_contents
$homepage = file_get_contents('http://www.111cn.net/'); //读取远程文本
echo $homepage;
代码如下 | 复制代码 |
// <= php 5 $file = file_get_contents('./people.txt', true); // > php 5 $file = file_get_contents('./people.txt', file_use_include_path); //打开本地文本 |
//count.php
代码如下 | 复制代码 |
$aid = isset( $_GET['aid'] )?$_GET['aid']:''; ?> |
html代码
代码如下 | 复制代码 |
<script language="javascript教程" src="count.php?aid=5&t=show"></script> 显示浏览次数 <script language="javascript" src="count.php?aid=5"></script> 增加浏览次数 |
我们只要把这段代码放到html页面,再把当前html 页面的id给aid就行了,这样你的静态页面的访问次数你也可以把握知道了哦。
本文章原创于www.111cn.net转载注明出处
相关文章
php 中file_get_contents超时问题的解决方法
file_get_contents超时我知道最多的原因就是你机器访问远程机器过慢,导致php脚本超时了,但也有其它很多原因,下面我来总结file_get_contents超时问题的解决方法总结。...2016-11-25- 相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
- php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
- 下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
- ps软件是现在非常受大家喜欢的一款软件,有着非常不错的使用功能。这次文章就给大家介绍下ps把文字背景变透明的操作方法,喜欢的一起来看看。 1、使用Photoshop软件...2017-07-06
intellij idea快速查看当前类中的所有方法(推荐)
这篇文章主要介绍了intellij idea快速查看当前类中的所有方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-09-02- 1.在没有设置默认值的情况下: 复制代码 代码如下:SELECT userinfo.id, user_name, role, adm_regionid, region_name , create_timeFROM userinfoLEFT JOIN region ON userinfo.adm_regionid = region.id 结果:...2014-05-31
js导出table数据到excel即导出为EXCEL文档的方法
复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht...2013-10-13- 批量更新mysql更新语句很简单,更新一条数据的某个字段,一般这样写:复制代码 代码如下:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';如果更新同一字段为同一个值,mysql也很简单,修改下where即...2013-10-04
- 本文涉及的主题虽然很基础,在许多人看来属于小伎俩,但在JavaScript基础知识中属于一个综合性的话题。这里会涉及到对象属性的封装、原型、构造函数、闭包以及立即执行表达式等知识。公有方法 公有方法就是能被外部访问...2015-11-08
- ps软件是一款非常不错的图片处理软件,有着非常不错的使用效果。这次文章要给大家介绍的是ps怎么制作倒影,一起来看看设计倒影的方法。 用ps怎么做倒影最终效果̳...2017-07-06
- 最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04
- 单个字符分割 string s="abcdeabcdeabcde"; string[] sArray=s.Split('c'); foreach(string i in sArray) Console.WriteLine(i.ToString()); 输出下面的结果: ab de...2020-06-25
安卓手机wifi打不开修复教程,安卓手机wifi打不开解决方法
手机wifi打不开?让小编来告诉你如何解决。还不知道的朋友快来看看。 手机wifi是现在生活中最常用的手机功能,但是遇到手机wifi打不开的情况该怎么办呢?如果手机wifi...2016-12-21- javascript控制页面控件隐藏显示的两种方法,方法的不同之处在于控件隐藏后是否还在页面上占位 方法一: 复制代码 代码如下: document.all["panelsms"].style.visibility="hidden"; document.all["panelsms"].style.visi...2013-10-13
连接MySql速度慢的解决方法(skip-name-resolve)
最近在Linux服务器上安装MySql5后,本地使用客户端连MySql速度超慢,本地程序连接也超慢。 解决方法:在配置文件my.cnf的[mysqld]下加入skip-name-resolve。原因是默认安装的MySql开启了DNS的反向解析。如果禁用的话就不能...2015-10-21- 本篇文章是对C#方法进行了详细的总结与介绍,需要的朋友参考下...2020-06-25
- 步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04
- 1、先讲讲JQuery的概念,JQuery首先是由一个 America 的叫什么 John Resig的人创建的,后来又很多的JS高手也加入了这个团队。其实 JQuery是一个JavaScript的类库,这个类库集合了很多功能方法,利用类库你可以用简单的一些代...2014-05-31
- EXCEL数据上传到SQL SERVER中的方法需要注意到三点!注意点一:要把EXCEL数据上传到SQL SERVER中必须提前把EXCEL传到服务器上.做法: 在ASP.NET环境中,添加一个FileUpload上传控件后台代码的E.X: 复制代码 代码如下: if...2013-09-23