PHP 中常用的字符串处理函数合集(实战向)
PHP 中常用的字符串处理函数合集(实战向)
在 PHP 开发中,字符串处理几乎无处不在:
- 接口参数校验
- 日志拼接
- 文本截取
- SQL / URL / JSON 处理
- 用户输入过滤
如果不熟悉 PHP 的字符串函数,很容易写出冗长、低效、难维护的代码。
本文系统整理了PHP 中最常用、最实用的字符串处理函数,并结合真实业务场景,帮你快速掌握。
一、字符串长度
strlen($str); // 计算字节长度
mb_strlen($str); // 计算字符长度(推荐)
⚠️ 中文必须用 mb_strlen:
mb_strlen('你好'); // 2
strlen('你好'); // 6
二、字符串截取
substr($str, 0, 5); // 截取前5个字节
mb_substr($str, 0, 5); // 截取前5个字符
推荐:
function str_limit($str, $length = 20, $suffix = '...')
{
return mb_strlen($str) > $length
? mb_substr($str, 0, $length) . $suffix
: $str;
}
三、字符串替换
str_replace('a', 'b', $str);
支持数组:
str_replace([' ', "\n"], '', $str);
正则替换:
preg_replace('/\s+/', ' ', $str);
四、字符串查找
strpos($str, 'php'); // 返回位置
str_contains($str, 'php'); // PHP8+
是否以某字符开头:
str_starts_with($str, 'http');
是否以某字符结尾:
str_ends_with($str, '.jpg');
五、大小写转换
strtoupper($str);
strtolower($str);
ucfirst($str); // 首字母大写
ucwords($str); // 每个单词首字母大写
六、去除空格
trim($str);
ltrim($str);
rtrim($str);
常见场景:
$username = trim($_POST['username']);
七、字符串分割与拼接
分割
explode(',', 'a,b,c');
拼接
implode(',', ['a', 'b', 'c']);
八、格式化字符串
sprintf("你好 %s,今年 %d 岁", $name, $age);
日志常用:
$log = sprintf('[%s] %s', date('Y-m-d H:i:s'), $msg);
九、字符串比较
strcmp('a', 'b'); // 0 相等
strcasecmp('a', 'A'); // 忽略大小写
十、HTML 与安全处理
htmlspecialchars($str);
strip_tags($str);
防 XSS:
echo htmlspecialchars($input, ENT_QUOTES, 'UTF-8');
十一、正则表达式
preg_match('/\d+/', $str);
preg_replace('/\d+/', '', $str);
示例:手机号校验
preg_match('/^1[3-9]\d{9}$/', $phone);
十二、URL 编解码
urlencode($str);
urldecode($str);
十三、JSON 字符串
json_encode($arr);
json_decode($json, true);
十四、常用字符串辅助函数封装
1. 判断是否为空字符串
function str_is_empty($str)
{
return trim($str) === '';
}
2. 隐藏手机号
function mask_phone($phone)
{
return substr_replace($phone, '****', 3, 4);
}
3. 高亮关键词
function highlight($text, $word)
{
return str_replace($word, "<b>$word</b>", $text);
}
十五、业务实战示例
示例 1:用户名脱敏
echo mb_substr($name, 0, 1) . '**';
示例 2:限制评论长度
$comment = str_limit($comment, 100);
示例 3:日志格式化
$log = sprintf('[%s][%s] %s', date('H:i:s'), $level, $msg);
十六、为什么要熟练字符串函数?
| 优势 | 说明 |
|---|---|
| 减少 Bug | 避免中文截断 |
| 提高效率 | 少写循环 |
| 代码更优雅 | 语义清晰 |
| 安全性更高 | 防 XSS / 注入 |
结语
字符串处理能力,几乎决定了一个 PHP 开发者的:
- 基础功
- 代码质量
- 项目健壮性