如何以比使用 strip_tags 函数更安全的方式去除标签?

2023-11-25

当字符串包含“小于”和“大于”符号时,我在使用 strip_tags PHP 函数时遇到一些问题。例如:

If I do:

strip_tags("<span>some text <5ml and then >10ml some text </span>");

我去拿:

some text 10ml some text

但是,显然我想得到:

some text <5ml and then >10ml some text

是的,我知道我可以使用

我正在寻找一种巧妙的方法来解析 HTML,以便仅删除实际的 HTML 标签。

由于 TinyMCE 用于生成该数据,我知道在任何情况下都可以使用哪些实际的 html 标签,因此strip_tags($string, $black_list)实施会比strip_tags($string, $allowable_tags).

有什么想法吗?


作为一种古怪的解决方法,您可以使用以下方法过滤非 html 括号:

$html = preg_replace("# <(?![/a-z]) | (?<=\s)>(?![a-z]) #exi", "htmlentities('$0')", $html);

之后应用 strip_tags() 。请注意,这仅适用于您的特定示例和类似案例。它是一个带有一些启发式的正则表达式,而不是人工智能来从具有其他含义的未转义尖括号中辨别 html 标签。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何以比使用 strip_tags 函数更安全的方式去除标签? 的相关文章

  • 来自完整 HTML 文档的 jQuery 对象

    是否可以将完整的 HTML 文档解析为完整的 jQuery 对象 当我尝试时 例如 var tmp p test p console log tmp I get title p test 即一个数组 将所有头部的子项与所有身体的子项组合起来
  • INET6_ATON 的替代 MySQL 代码

    将旧的 INET ATON 值转换为新的二进制 INET6 ATON 值 无需 INET6 ATON INET6 NTOA 我们在表中已有数据 字段类型为UNSIGNED INT其中保存了使用以下命令创建的 IPv4 数据INET ATON
  • PHP 准备语句转义的清晰性

    我知道这是一个非常受欢迎的问题 并且已经研究了很多小时 我仍然对明确的答案有点不确定 我不是 PHP 专业人士 并且已经自学了一段时间 我最近刚刚了解 MYSQLi 准备好的语句 已经习惯了旧的做法 我的主要问题是试图找到关于在使用准备好的
  • 如何仅提取 mysql 和 php 中具有非零值的列?

    我正在尝试从 mysql 数据库中提取并显示在网页上 仅非零列 哪一列的日期是 0000 00 00 我不想在网页上显示这些列 下面分别是HTML代码和php脚本
  • Tomcat 8 上的 PHP

    我找到了很多如何让 PHP 在 Tomcat 上运行的指南 但都是以前的版本 我尝试了所有这些 但我所能显示的只是一个空白页面 并且代码仍然没有被触发 我知道 Tomcat 是为 Java 应用程序而不是 PHP 构建的 但我需要找到一种使
  • 如何在 PHPWord 中更改纸张大小

    如何更改phpword中的纸张大小 我想将纸张尺寸更改为 Legal 纸张 8 5 英寸 x 14 英寸 我在文档中找不到该选项 我不确定如何应用该规则 并且文档中似乎没有与此相关的 纸张 或 大小 https phpword readth
  • Composer 已安装,但获取 /usr/bin/env: php: No such file or directory

    在 CentOS 7 上 我安装了 PHP 7 1 然后我安装了作曲家 cd tmp curl sS https getcomposer org installer php71 gt used php71 instead of php ph
  • DateTime 类与原生 PHP 日期函数

    DateTime 类确实有一些方便的方法 并且总体上似乎优于本机 PHP 日期函数 例如strtotime mktime and strftime 和更多 但是有什么缺点或者我不应该使用它的原因吗 我能想到的唯一原因是创建类的整个实例可能比
  • 内存泄漏?!在“array_map”中使用“create_function”时,垃圾收集器是否正确?

    我在 StackOverflow 上找到了以下解决方案 从对象数组中获取特定对象属性的数组 PHP 从对象数组中提取属性 https stackoverflow com questions 1118994 php extracting a
  • PHP邮件发送附件但附件为空

    基本上 我正在尝试通过 PHPMail 发送 PDF 电子邮件已发送 我在 Outlook 中完美收到 问题是附件已损坏并且无法打开 我什至尝试发送 HTML 但也是空的 我尝试在论坛中进行研究 尝试了几个 工作代码 其他人让它与此代码一起
  • PHP 中的 Javascript“unes​​cape”

    我的图像主机有一个 Google Chrome 扩展程序 它会向我的网站发送一个 URL 该网址得到encoded通过 JavaScript 的escape method 编码的 URLescape看起来像这样 http 253A 4 bp
  • 如何获取每个类别(例如 WooCommerce 后端)的产品数量?

    我正在建立一个新网站 我对 Woocommerce 非常满意 我只需要一个快速技巧来获取每个类别中的产品数量 我已经调出了每个产品的类别 但无法弄清楚如何从该类别中获取产品数量 我有一个适合我的产品的列表样式 实际上是活动网站的活动 查看图
  • 如何通过 PEAR 安装旧版本的 PHPUnit?

    我想将 PHPUnit 3 4 的安装降级到 3 3 我只是不知道该怎么做 如何使用 PEAR 在 Ubuntu 上安装 PHPUnit 3 3 版本 您需要知道要降级到的确切版本号 在撰写本文时 您所使用的最后一个版本是 3 3 17 可
  • SO 日期计算和格式化

    SO 使用什么脚本来显示日期 因为它的格式和逻辑显示似乎相当不错 我不确定 StackOverflow 使用什么 但最常见的时间戳表示之一是 twitter 所做的 它将时间戳显示为a moment ago 30 seconds ago x
  • 循环遍历多维数组

    我有一个与此类似的 JSON 文件 Pages Name Home Page index php admin Name Admin Page admin index php Template admin MobileTemplate adm
  • 无法识别 php 变量

    我在两个文件中分别有以下代码 文件一 php
  • 使用 Assetic PHP 通过 RVM 安装后 Sass 损坏

    我正在尝试设置 Assetic PHP 资源编译器 并且它可以与 CoffeeScript Stylus 和 Less 一起使用 所有 NPM 包都运行良好 然而 对于 Sass 我遇到了问题 以下是我到目前为止所采取的步骤 我安装了 RV
  • SQLSTATE[HY000] [2002] 连接尝试失败,因为连接方在一段时间后没有正确响应,

    我尝试连接 2 个数据库Laravel 5 6项目 但我遇到这样的错误 SQLSTATE HY000 2002 连接尝试失败 因为连接方在一段时间后没有正确响应 或者由于连接的主机未能响应而建立的连接失败 SQL 从中选择 mt merch
  • AngularJS + Laravel 5 身份验证

    在使用 AngularJS 构建 SPA 时 我想在 AngularJS 网站中实现用户身份验证 但是 我不知道从哪里开始以及最佳实践是什么 基本上我有一个确定可以担任一个或多个角色 我寻找了一些例子 这样我就可以对如何正确处理这个问题有一
  • PHP日期时间“下周星期三”给我星期一

    我正在尝试使用以下方法获取下周星期三的日期new DateTime next week wednesday 然而 它返回2016 12 19 00 00 00 000000今天是星期一 为什么会这样呢 如何得到正确的结果 我尝试在在线 PH

随机推荐