如何使用正则替换的方式实现清除字符串中所有的HTML标签?
时间:2021-06-19
来源:互联网
今天PHP爱好者给大家带来上篇文章给大家介绍了《PHP中我们如何自定义匹配手机号的正则表达式?(附代码)》,本文继续给大家介绍如何使用正则替换的方式实现清除字符串中所有的HTML标签?(详细介绍)
如何编写一个函数,使用正则替换的方式能够实现清除字符串中所有的HTML标签?
如果我们想要去清楚字符串HTML的标签去要把HTML的标签全部列出来,首先我们先把字符串定义下来,总的来说我们HTML的标签主要有两种情况,一种是双标签以什么开始,以什么结束,另外一种就是单标签(<meta>或者是input)结束,一般情况下,我们不会把这个标签给删掉,比如说写一个(input)标签的文本域,如果我们把标签删掉了,文本域就没了,因此我们不会直接这样做,我们会把相对应的标签转化为实体,假如,我们直接输出(echo)$str;我们运行结果,空白栏外是front标签,里面是普通的文本域,(代码结果如下所示)
<?php
/**** ***清楚字符串HTML标签* *******/
$str ='<font>高考加油</font><input type="text"/>';
echo $str;
?>
代码结果如下所示
以上这种情况,如果我们要是清除,是不行的,因此,我们会对上述代码进行替换,首先,我们先定义一个函数,function demo(),给到一个字符串,紧接着我们定义正则,$pattern,然后我们需要使用到两个符号,第一(/</S),第二个是(/>/S),当我们找到之后,我们进行替换,$replace,一个是(<)另一个是(>),最后我们直接(return)他们的结果。输出(echo)demo($str),最后我们得到的结果就是原样输出,
代码如下:
<?php
/**** ***清楚字符串HTML标签* *******/
$str ='<font>高考加油</font><input type="text"/>';
echo $str;
function demo($str){
//定义正则
$pattern = array(
'/</S',
'/>/S'
);
$replace = array('<','>' );
return preg_replace($pattern, $replace, $str);
}
echo '<hr/>' ;
echo demo($str);
?>
代码结果如下所示;
其实一样,我不使用这个函数,系统中也有其他的函数帮我们实现;
例如:
(htmlentities)---将字符串转换为HTML转义字符。
(htmlspecialchars)---特殊字符转换为HTML实体。
现在我们用(htmlspecialchars)
函数进行编码,然后进行代码演示:
代码如下:
<?php
/**** ***清楚字符串HTML标签* *******/
$str ='<font>高考加油</font><input type="text"/>';
echo $str . '<hr/>';
echo htmlspecialchars($str);
function demo($str){
//定义正则
$pattern = array(
'/</S',
'/>/S'
);
$replace = array('<','>' );
return preg_replace($pattern, $replace, $str);
}
echo '<hr/>' ;
echo demo($str);
?>
代码结果如下所示;
从上述代码演示结果看出,我们所得到的结果是一样的,这就是我们所实现的替换,然而对于我们今天讨论的清除,道理是一样的,我们还是定义一个正则表达式,
我们以代码为例:
<?php
/**** ***清楚字符串HTML标签* *******/
$str ='<font>高考加油</font><input type="text"/>';
echo $str . '<hr/>';
echo htmlspecialchars($str);
function demo($str){
//定义正则
$pattern = array(
'/</S',
'/>/S'
);
$replace = array('<','>' );
return preg_replace($pattern, $replace, $str);
}
echo '<hr/>' ;
echo demo($str);
echo '<hr/>';
$str ='<font color="" >高考加油</font>';
$pattern = '/<.*?>(.*?)<\/.*?>/S';
echo preg_replace($pattern,'\1',$str);
?>
代码结果如下所示;
通过上述代码我们可以清楚地看到,标签已经清除了,只剩下内容了;
以上就是如何使用正则替换的方式实现清除字符串中所有的HTML标签?的详细内容,更多请关注php爱好者其它相关文章!
-
原神爱可菲抽几命好-爱可菲命之座抽取建议 时间:2025-05-09
-
C++中createevent函数用法详解 时间:2025-05-09
-
原神爱可菲抽几命好-爱可菲命之座抽取建议 时间:2025-05-09
-
绝区零配送活动第五天怎么过-比利点单活动 时间:2025-05-09
-
MySQL数据类型中int、bigint、smallint和tinyint的区别 时间:2025-05-09
-
绝区零配送活动第五天怎么过-比利点单活动 时间:2025-05-09
今日更新
-
分析PHP底层内核源码之变量 (三)
阅读:18
-
微型计算机硬件系统最主要的部件是什么
阅读:18
-
javascript区分大小写吗
阅读:18
-
字节是计算机什么的基本单位
阅读:18
-
什么是网络协议?常用的应用层协议包括哪些?
阅读:18
-
javascript如何使用reduce方法
阅读:18
-
深入解析PHP底层之Running process
阅读:18
-
使用php中的mail函数发送邮件收不到怎么办
阅读:18
-
计算机内部数据加工处理和传送的形式是什么
阅读:18
-
JavaScript中如何声明常量
阅读:18