字符串处理是 PHP 日常开发中最常见的任务之一。无论是清洗用户输入、拼接页面内容,还是解析日志文件,掌握下面这 8 个函数,就能应付大部分场景。所有示例都可以直接复制运行。
1. strlen():获取字符串长度
strlen() 返回字符串的字节数。注意它统计的是字节而不是字符,处理中文时结果可能和直觉不一样。
<?php
$name = 'Sherry';
echo strlen($name); // 输出:6
$cn = '你好';
echo strlen($cn); // 输出:6(UTF-8 下每个汉字占 3 字节)
echo mb_strlen($cn); // 输出:2(按字符统计,需要 mbstring 扩展)
处理中文等多字节文本时,优先使用 mb_strlen()。
2. trim():去除首尾空白
表单数据入库前几乎一定要过一遍 trim(),防止用户不小心带入空格或换行。
<?php
$input = " hello world \n";
echo trim($input); // 输出:hello world
echo ltrim($input); // 只去掉左侧空白
echo rtrim($input); // 只去掉右侧空白
3. str_replace():字符串替换
查找替换的首选函数,还支持数组形式的批量替换。
<?php
$text = '我喜欢 Python,Python 真好用。';
echo str_replace('Python', 'PHP', $text);
// 输出:我喜欢 PHP,PHP 真好用。
// 批量替换:把数组里的 key 换成对应的 value
echo str_replace(
['red', 'green'],
['红色', '绿色'],
'red and green'
);
// 输出:红色 and 绿色
4. explode() 与 implode():字符串和数组互转
一对互逆操作:explode() 按分隔符拆成数组,implode() 把数组拼回字符串。
<?php
$tags = 'php,mysql,linux';
$arr = explode(',', $tags);
print_r($arr); // ['php', 'mysql', 'linux']
echo implode(' | ', $arr); // 输出:php | mysql | linux
5. substr():截取子串
<?php
$date = '2026-09-25';
echo substr($date, 0, 4); // 输出:2026
echo substr($date, 5); // 输出:09-25
同样地,中文截取请使用 mb_substr(),避免切出乱码。
6. strtolower() 与 strtoupper():大小写转换
比较邮箱、统一格式时经常用到。
<?php
$email = '[email protected]';
echo strtolower($email); // 输出:[email protected]
echo strtoupper('php'); // 输出:PHP
7. str_contains():包含判断(PHP 8+)
以前判断"包不包含"要写 strpos() !== false,PHP 8 之后一行搞定:
<?php
$url = 'https://sherry.cool';
if (str_contains($url, 'sherry')) {
echo '链接里包含 sherry';
}
if (str_starts_with($url, 'https')) {
echo '这是 HTTPS 链接';
}
8. sprintf():格式化字符串
<?php
$price = 9.5;
echo sprintf('价格:%.2f 元', $price); // 输出:价格:9.50 元
echo sprintf('%s 发表于 %s', 'Sherry', date('Y-m-d'));
// 输出:Sherry 发表于 2026-09-25
小结
- 统计长度:
strlen()/mb_strlen() - 去空白:
trim()、ltrim()、rtrim() - 替换:
str_replace() - 拆分与拼接:
explode()/implode() - 截取:
substr()/mb_substr() - 大小写:
strtolower()/strtoupper() - 包含判断:
str_contains()(PHP 8+) - 格式化:
sprintf()
这些函数都是只读或纯转换类的安全函数,不涉及系统命令执行,可以放心用在业务代码里。下一篇文章我们来整理 PHP 数组操作的常用方法。
评论 0
还没有评论,来抢沙发吧~ 🛋