PHP内置字符串处理函数详解与实例

何川
何川
发布时间:2026-10-16| 2人浏览过
原创

掌握PHP内置的字符串处理函数是后端开发的基础技能之一。本文将解析大小写转换、HTML实体转义、标签剥离及格式化货币等核心函数,结合代码实例说明其在数据清洗与安全防御中的实际用途。

大小写转换函数

在PHP中,所有字符串处理函数通常不会修改原变量,而是返回一个新的处理后的字符串值。这在Windows和Linux环境下尤为需要注意,因为Linux文件系统对文件名大小写敏感,而Windows不敏感,因此在跨平台自动加载类或处理路径时需谨慎。

  • strtolower():将字符串全部转换为小写。
  • strtoupper():将字符串全部转换为大写。
  • ucfirst():仅将字符串首字符转换为大写。
  • ucwords():将字符串中每个单词的首字母转换为大写(原文误写为ucword)。
<?php
// 示例:转换为小写
$str1 = 'www.jb51.net';
echo strtolower($str1); // 结果: www.jb51.net

// 示例:首字母大写
$str2 = 'hello world';
echo ucfirst($str2);    // 结果: Hello world

// 示例:每个单词首字母大写
$str3 = 'i love you';
echo ucwords($str3);    // 结果: I Love You
?>

HTML标签处理与安全转义

在处理用户输入(如表单提交)时,直接输出HTML标签可能导致页面布局混乱或执行恶意脚本(XSS攻击)。PHP提供了多种工具来控制HTML标签的显示方式。

第1步:理解换行与实体显示

在浏览器源码中的换行符(\n)默认会被折叠为一个空格。若希望保留换行视觉效果,可使用 nl2br() 函数将换行符替换为 <br />。

第2步:全面HTML实体转义

当需要将用户输入的HTML代码以文本形式原样显示,而不是作为标签渲染时,使用 htmlspecialchars()。它会将 < 和 > 分别转换为 &lt; 和 &gt;,从而防止浏览器解析这些标签。这是防御简单XSS攻击的重要手段。

// 假设用户输入了标题
$title = '<div><h1>Warning</h1></div>';
// 安全输出
&echo htmlspecialchars($title); 
// 页面源码显示: &lt;div&gt;&lt;h1&gt;Warning&lt;/h1&gt;&lt;/div&gt;
// 页面视觉上显示: &lt;div&gt;&lt;h1&gt;Warning&lt;/h1&gt;&lt;/div&gt;

第3步:保留部分HTML标签

如果允许用户输入富文本但需限制特定标签(如只允许加粗 <b> 或段落 <p>),可使用 strip_tags()。该函数第一个参数为待处理字符串,第二个可选参数指定允许的标签列表。

$safe_html = strip_tags($_GET['content'], '<b><p><strong>');
// 除 b, p, strong 外的所有其他HTML标签将被移除

第4步:去除反斜杠转义

在某些配置下(如魔术引号已弃用但仍可能存在于旧系统中),输入内容可能被添加反斜杠进行转义(如 'jb51' 变为 '\'jb51\'')。此时应使用 stripslashes() 恢复原始内容。若需同时处理转义字符并输出安全的HTML展示,可组合使用:

$raw_input = "<a href='#'>i love 'test'</a>";
// 先去除反斜杠转义,再转义HTML特殊字符以防注入
$safe_output = htmlspecialchars(stripslashes($raw_input));

其他实用字符串与加密函数

数字格式化处理

number_format() 用于格式化数字,常用于价格显示。语法为 number_format(number, decimals, dec_point, thousands_sep)。

$price = 1234567.89;
// 中国习惯:千位逗号分隔,小数点为点,保留2位小数
echo number_format($price, 2, '.', ','); 
// 结果: 1,234,567.89

// 欧洲/法国习惯:千位为点,小数点为逗号
echo number_format($price, 2, ',', '.'); 
// 结果: 1.234.567,89

字符串反转

strrev() 用于将字符串顺序完全反转。

$url = 'https://example.com';
echo strrev($url); 
// 结果: moc.elpmaxe//:sptth

MD5哈希加密

md5() 是一种广泛使用的散列算法,常用于生成密码的不可逆哈希值存储于数据库中。需注意MD5已不再推荐用于高安全性场景,但在基础数据处理中仍可见。

$password = 'admin';
$hash = md5($password);
echo $hash; // 输出: 21232f297a57a5a743894a0e4a801fc3
以上就是PHP内置字符串处理函数的详细内容,更多关于PHP开发基础与技术实战的资料请关注本站其它相关文章!
相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。