PHP 字符串处理实用类封装:过滤、替换与清理

小岛来信
小岛来信
发布时间:2026-10-14 | 2人浏览过
原创

在处理用户输入或后台数据时,经常需要对字符串进行清洗、格式化和安全过滤。本文整理并重构了一套 PHP 字符串处理工具类,重点解决了换行符与 HTML 标签的互转、多余空白字符的合并以及危险脚本标签的移除等常见需求,提供可直接复用的静态方法。

基础格式转换

在将文本内容展示到 Web 页面时,保持格式的统一性至关重要。以下方法用于在纯文本换行与 HTML 显示换行之间进行转换。

第1步:文本换行转为 HTML 标签

目的是将普通文本中的换行符 \n 转换为浏览器可视化的 <br /> 标签。

  1. 入口/方法:nl2br()
  2. 动作:直接调用 PHP 原生函数。
  3. 示例代码
static public function nl2br($string) {
    return nl2br($string);
}

第2步:HTML 标签转为文本换行

目的是反向操作,将页面上的 <br> 或 <br/> 还原为换行符,便于回显至纯文本输入框。

  1. 入口/方法:br2nl()
  2. 参数:接收待处理的字符串。
  3. 动作:使用 str_replace 同时替换两种常见的 br 标签格式。
static public function br2nl($string) {
    $array = array('<br>', '<br/>');
    return str_replace($array, "\n", $string);
}

空白字符清理

用户输入中常包含连续的空格或空行,通过正则表达式可有效压缩这些冗余字符。

第3步:多个空格合并为一个

目的是消除重复的空格,使字符串更紧凑。利用正则lookahead(前瞻断言)匹配连续相同的空白字符。

static public function merge_spaces($string) {
    // (?=\s) 匹配后跟空格的字符,仅保留第一个
    return preg_replace("/\s(?=\s)/", "\\1", $string);
}

第4步:多个换行标签合并为一个

目的同样是清理因多次粘贴导致的重复 <br>。

static public function merge_brs($string) {
    // 匹配连续出现的 br 标签(忽略大小写)
    return preg_replace("/((<br\/ ?>)+)/i", "<br>", $string);
}

HTML 与安全过滤

为了防止 XSS 攻击或保持输出纯净,需要剔除特定的 HTML 结构和脚本标签。

第5步:过滤所有 HTML 标签

简单粗暴地移除所有 HTML 标记,仅保留纯文本。

static public function strip_tags_filter($string) {
    return strip_tags($string);
}

第6步:过滤 <style> 区块

目的是去除内联样式定义,防止 CSS 注入。使用正则匹配从 <style> 到 </style> 的全部内容。

static public function strip_style($string) {
    $reg = "/<style[^>]*?>.*?<\/style>/is";
    return preg_replace($reg, '', $string);
}

第7步:过滤危险脚本标签

针对 script、iframe、html、body 等可能承载恶意代码的标签进行深度过滤。

static public function strip_dangerous_tags($string) {
    // 匹配危险标签及其属性内容
    $reg = "/(\/ ?)(script|iframe|style|html|body|title|meta|\?|%)([^>]*?)>/is";
    return preg_replace($reg, '', $string);
}

其他常用辅助功能

  • 大小写转换:使用内置的 strtolower() 和 strtoupper() 进行统一。
  • Trim 增强版:自定义的 trim 方法允许指定要剔除的首尾字符列表,适用于复杂边界清理场景,但需注意正则表达式的正确构造以避免误伤正常字符。

以上就是PHP字符串过滤与替换详细方法的整理内容,更多关于PHP开发技巧的资料请关注本站其它相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表