php函数strip_tags标签未闭合的情况

在前一阵在的面试过程中面试官曾经问我,如果字符串中的标签未闭合,strip_tags会如何处理?

在php的官方文档中对strip_tags的表述如下;

strip_tags — 从字符串中去除 HTML 和 PHP 标记

注意文档下方的warning:

由于 strip_tags() 无法实际验证
HTML,不完整或者破损标签将导致更多的数据被删除。

这句话是什么意思呢?

通过下面的几个案例来向大家介绍

sample1:

$testStr1 = "<strong>hello world!</strong>";
echo strip_tags($testStr1);

输出:

hello world!

sample2:

$testStr1 = "<strong>hello world!";
echo strip_tags($testStr1);

输出:

hello world!

sample3:

$testStr2 = "<stronghello world!</strong>";
echo strip_tags($testStr2);

输出空字符串

sample4:

$testStr3 = "hello world1<stronghello world2!</strong>hello world3";
echo strip_tags($testStr3);

输出:

hello world1

通过以上几个案例我们可以看出在处理没有闭合的标签时strip_tags函数会将未闭合标签之后的所有字符串全部清除。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-25 00:14:14

php函数strip_tags标签未闭合的情况的相关文章

HP自动检查html标签是否闭合

function HtmlClose($body) { $strlen_var = strlen($body); // 不包含 html 标签 if (strpos($body, '<') === false) { return $body; } // html 代码标记 $html_tag = 0; // 摘要字符串 $summary_string = ''; /** * 数组用作记录摘要范围内出现的 html 标签 * 开始和结束分别保存在 left 和 right 键名下 * 如字符串为:

C++内存未释放的情况

以下例子中,存储了整数123的记亿体空间不能被删除,因为地址丢失了.这些空间已无法再使用. 1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5 int *a = new int(123); 6 cout << *a << endl; 7 // We should write "delete a;" here 8 a = new int(456); 9 cout <<

java-int类型:int默认为0导致更新操作未赋值的情况下将值更新为0

日常开发中,做更新操作的时候的处理方法为:当这个字段有值则更新,没有值就不更新,在mybatis的xml中表现为: <!-- 修改记录,只修改只不为空的字段 --> <update id="updateBySelective" parameterType="Object" > update tb_mj_user set <trim suffixOverrides="," > <if test="

字符串作为函数模版实參的意外情况

有时,当把c风格的不同字符串去实例化函数模版的同一个模版參数时,在实參演绎的过程中常常会发生 意想不到的事情,那就是编译失败,并报错类型不匹配. 正如以下的样例一样: #include<iostream> using namespace std; /* *匹配測试 */ template<typename T> int ref_fun(T & t1,T & t2) { return strlen(t1) - strlen(t2); } template<typ

自闭合标签-主动闭合标签-meta-link标签

<!DOCTYPE html><!--规定标准的html--><!--一个页在只有一对html标签--><!--标签的属性 指定英文--><html lang="en"><head> <!--自闭合标签 没有另一半 自动闭合 叫自闭合标签--> <!--主动闭合标签 有另一半叫主动闭合标签--> <!--head当中 大多数标签是看不到--> <meta charset=&

EL表达式 JSTL的标签库 EL的函数 自定义EL函数 自定义标签 JSP的开发模式 注册登陆案例

EL表达式 JSTL的标签库 EL的函数 自定义EL函数 自定义标签 JSP的开发模式 注册登陆案例 EL表达式 1.获取域对象中的值 2.EL表达式支持运算 ${ num1 + num2 } EL获取常用的WEB对象 1.pageScope 获取page域对象的值 2.requestScope 获取request域对象的值 3.sessionScope 获取session域对象的值 4.applicationScope 获取application域对象的值 * 例子:向某个域中来存入值 req

云函数中有以下未安装的依赖,如果未安装即全量上传。。。

云函数中有以下未安装的依赖,如果未安装即全量上传 在新建的云函数,右击终端打开->cmd,安装依赖 npm install --production 依赖安装成功之后,文件里面会出现package-lock.json文件. 原文地址:https://www.cnblogs.com/yewook/p/10523935.html

a标签没有闭合引起自动插入很多a标签的问题

a标签中间没有内容的情况下,很容易忽略闭合 a标签一定要闭合,否则会在后面每个div后面插入同一个a标签 要以如下形式闭合: <div class="v5-index-container3 v5-clearfix banner banner06" style="margin-bottom:15px;"> <div style="width:100%;height: 100%;"> <a href="http

springboot 1.5.2 thymeleaf 标签未关闭异常解决办法

org.thymeleaf.exceptions.TemplateInputException: Exception parsing document: template="login" 原因: Spring Boot项目渲染html的时候,因默认使用是Thymeleaf模板引擎,遇到不闭合标签报错,日常在编写HTML代码时,一般标签都是闭合的,容易忽略的标签包括<meta/>, <link/>, <br/>, <hr/>等等 解决办法: