PHP 提供了 超过 100 个内置字符串处理函数,以下是按功能分类的核心函数列表(包含常用和进阶函数):
📍 一、基础操作
函数 | 说明 |
---|
strlen($str) | 获取字节长度 |
strrev($str) | 反转字符串(非 UTF-8 安全) |
str_repeat($str, $n) | 重复字符串 |
str_pad($str, $len, $pad_str, $type) | 填充字符串 |
chr($ascii) | ASCII 转字符 |
ord($char) | 字符转 ASCII |
🔍 二、查找与定位
函数 | 说明 |
---|
strpos($haystack, $needle) | 首次出现位置 |
strrpos($haystack, $needle) | 末次出现位置 |
stripos() / strripos() | 不区分大小写 |
strstr($haystack, $needle) | 返回首次出现后的内容 |
stristr() | 不区分大小写版本 |
strpbrk($str, $char_list) | 查找字符集合首次出现 |
strspn($str, $mask) | 计算匹配掩码的长度 |
strcspn($str, $mask) | 计算不匹配掩码的长度 |
🔁 三、替换操作
函数 | 说明 |
---|
str_replace($search, $replace, $str) | 全局替换 |
str_ireplace() | 不区分大小写替换 |
substr_replace($str, $rep, $start, $len) | 子串替换 |
strtr($str, $from, $to) | 字符替换 |
strtr($str, $replace_pairs) | 键值对替换(高效) |
✂️ 四、截取与分割
函数 | 说明 |
---|
substr($str, $start, $len) | 截取子串 |
explode($delimiter, $str) | 字符串转数组 |
implode($glue, $arr) | 数组转字符串 |
strtok($str, $delim) | 标记化分割 |
chunk_split($str, $chunklen, $end) | 按长度分割 |
↔️ 五、大小写转换
函数 | 说明 |
---|
strtolower($str) | 全小写转换 |
strtoupper($str) | 全大写转换 |
lcfirst($str) | 首字母小写 |
ucfirst($str) | 首字母大写 |
ucwords($str) | 单词首字母大写 |
🧼 六、清理与过滤
函数 | 说明 |
---|
trim($str, $mask) | 去除两端字符 |
ltrim() / rtrim() | 左/右清理 |
strip_tags($str, $allow_tags) | 移除 HTML 标签 |
htmlspecialchars($str) | 转义 HTML 特殊字符 |
htmlentities($str) | 转义所有 HTML 实体 |
addslashes($str) | 添加转义斜线 |
stripslashes($str) | 移除转义斜线 |
quotemeta($str) | 转义元字符 |
📊 七、比较与校验
函数 | 说明 |
---|
strcmp($str1, $str2) | 二进制安全比较 |
strcasecmp() | 不区分大小写比较 |
strnatcmp() | 自然顺序比较 |
similar_text($str1, $str2, &$percent) | 计算相似度 |
levenshtein($str1, $str2) | 计算编辑距离 |
ctype_alnum($str) | 是否字母/数字 |
ctype_alpha() / ctype_digit() | 字母/数字校验 |
🌐 八、多字节处理 (mbstring)
函数 | 说明 |
---|
mb_strlen($str, $encoding) | 字符数统计 |
mb_substr($str, $start, $len, $encoding) | 安全子串截取 |
mb_strpos() / mb_strrpos() | 多字节定位 |
mb_convert_case($str, $mode, $encoding) | 大小写转换 |
mb_detect_encoding($str) | 检测编码 |
mb_convert_encoding($str, $to, $from) | 转换编码 |
🔐 九、加密与编码
函数 | 说明 |
---|
md5($str) / sha1($str) | 哈希计算(已不推荐安全场景) |
password_hash($str, $algo) | 安全密码哈希 |
base64_encode($data) | Base64 编码 |
base64_decode($data) | Base64 解码 |
urlencode($str) | URL 编码 |
urldecode($str) | URL 解码 |
rawurlencode() / rawurldecode() | RFC 3986 编码 |
📦 十、特殊格式处理
函数 | 说明 |
---|
json_encode($data) | 生成 JSON |
json_decode($json, $assoc) | 解析 JSON |
serialize($value) | PHP 序列化 |
unserialize($data) | PHP 反序列化 |
sprintf($format, ...$args) | 格式化字符串 |
vsprintf($format, $args) | 数组参数格式化 |
parse_str($query, &$result) | 解析查询字符串 |
wordwrap($str, $width, $break, $cut) | 自动换行处理 |
⚡ 性能优化技巧
$parts = [];
for ($i=0; $i<1000; $i++) {
$parts[] = $i;
}
$result = implode(',', $parts);
echo mb_substr("こんにちは", 0, 2, "UTF-8");
$safe_output = htmlspecialchars($user_input, ENT_QUOTES, 'UTF-8');
$sql_safe = $pdo->quote($input);
完整函数参考:PHP 字符串函数官方文档