字符串处理是 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 数组操作的常用方法。