温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么使用正则替换的方式实现清除字符串中所有的HTML标签

发布时间:2021-06-11 10:09:06 来源:亿速云 阅读:176 作者:小新 栏目:编程语言

这篇文章将为大家详细讲解有关怎么使用正则替换的方式实现清除字符串中所有的HTML标签,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

如何编写一个函数,使用正则替换的方式能够实现清除字符串中所有的HTML标签?

如果我们想要去清楚字符串HTML的标签去要把HTML的标签全部列出来,首先我们先把字符串定义下来,总的来说我们HTML的标签主要有两种情况,一种是双标签以什么开始,以什么结束,另外一种就是单标签(<meta>或者是input)结束,一般情况下,我们不会把这个标签给删掉,比如说写一个(input)标签的文本域,如果我们把标签删掉了,文本域就没了,因此我们不会直接这样做,我们会把相对应的标签转化为实体,假如,我们直接输出(echo)$str;我们运行结果,空白栏外是front标签,里面是普通的文本域,(代码结果如下所示)

<?php
/**** ***清楚字符串HTML标签* *******/
$str ='<font>高考加油</font><input type="text"/>';
echo $str;
?>

代码结果如下所示

怎么使用正则替换的方式实现清除字符串中所有的HTML标签

以上这种情况,如果我们要是清除,是不行的,因此,我们会对上述代码进行替换,首先,我们先定义一个函数,function demo(),给到一个字符串,紧接着我们定义正则,$pattern,然后我们需要使用到两个符号,第一(/</S),第二个是(/>/S),当我们找到之后,我们进行替换,$replace,一个是(&lt)另一个是(&gt),最后我们直接(return)他们的结果。输出(echo)demo($str),最后我们得到的结果就是原样输出,

代码如下:

<?php
/**** ***清楚字符串HTML标签* *******/
$str ='<font>高考加油</font><input type="text"/>';
echo $str;


function demo($str){
    //定义正则
    $pattern = array(
    '/</S',
    '/>/S'
    );
    $replace = array('&lt;','&gt;' );
    return preg_replace($pattern, $replace, $str);
}
    echo '<hr/>' ;
    echo demo($str);
?>

代码结果如下所示;

怎么使用正则替换的方式实现清除字符串中所有的HTML标签

其实一样,我不使用这个函数,系统中也有其他的函数帮我们实现;

例如:

  • (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('&lt;','&gt;' );
    return preg_replace($pattern, $replace, $str);
}
    echo '<hr/>' ;
    echo demo($str);
?>

代码结果如下所示;

怎么使用正则替换的方式实现清除字符串中所有的HTML标签

从上述代码演示结果看出,我们所得到的结果是一样的,这就是我们所实现的替换,然而对于我们今天讨论的清除,道理是一样的,我们还是定义一个正则表达式,

我们以代码为例:

<?php
/**** ***清楚字符串HTML标签* *******/
$str ='<font>高考加油</font><input type="text"/>';
echo $str . '<hr/>';
echo htmlspecialchars($str);
function demo($str){
    //定义正则
    $pattern = array(
    '/</S',
    '/>/S'
    );
    $replace = array('&lt;','&gt;' );
    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标签

通过上述代码我们可以清楚地看到,标签已经清除了,只剩下内容了;

关于“怎么使用正则替换的方式实现清除字符串中所有的HTML标签”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI