PHP中有哪些字符串处理函数?

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)自动换行处理

⚡ 性能优化技巧

// 1. 避免在循环中拼接字符串(使用 implode 替代)
$parts = [];
for ($i=0; $i<1000; $i++) {
    $parts[] = $i;
}
$result = implode(',', $parts);

// 2. UTF-8 操作必须使用 mb_ 函数
echo mb_substr("こんにちは", 0, 2, "UTF-8"); // 输出:こん

// 3. 正则 vs 字符串函数:简单操作用字符串函数更快
// 慢:preg_replace('/\./', '', $str);
// 快:str_replace('.', '', $str);

// 4. 安全实践:
$safe_output = htmlspecialchars($user_input, ENT_QUOTES, 'UTF-8');
$sql_safe = $pdo->quote($input);  // 使用参数化查询替代

完整函数参考:PHP 字符串函数官方文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值