📜 PHP字符串截取大作战:从入门到“剁手”教程
(信息来源:PHP官方文档 & 实战经验整理 | 更新日期:2025-08)
想象一下,你正在开发一个社交APP,用户昵称最长只能显示5个汉字,但数据库里存了“奥利给·闪电旋风劈”这种超长名字……这时候,你需要一把“虚拟菜刀”精准切分字符串!PHP作为后端开发神器,自带多种“剁”字符串的函数,今天就带你玩转它们~
定义:从指定位置截取固定长度的字符串。
语法:substr(string $string, int $start, ?int $length = null): string
🌰 示例:
$text = "每天学点PHP不秃头💻"; echo substr($text, 3, 5); // 输出:学点PHP不(从第3个字符开始,截5个) echo substr($text, -5, 3); // 输出:不秃头(负数表示从末尾倒数)
⚠️ 注意:中文字符可能乱码!因为substr()
按字节截取,而一个中文占3字节(UTF-8编码),这时候请出它的升级版……
定义:支持多字节编码(如UTF-8)的截取,中文友好!
语法:mb_substr(string $str, int $start, ?int $length = null, ?string $encoding = null): string
🌰 示例:
$text = "PHP是世界上最好的语言✨"; echo mb_substr($text, 0, 5, 'UTF-8'); // 输出:PHP是世界上(准确截取5个字符)
💡 技巧:先设置全局编码更省事!
mb_internal_encoding('UTF-8'); // 一劳永逸
定义:把字符串按指定长度拆分成数组。
语法:str_split(string $string, int $split_length = 1): array
🌰 示例:
$text = "ABCDEFG"; print_r(str_split($text, 2)); // 输出:Array ( [0] => AB [1] => CD [2] => EF [3] => G )
🎯 场景:生成验证码图片时,把字符串拆成单个字符处理~
定义:用指定分隔符切开字符串,返回数组。
语法:explode(string $separator, string $string, int $limit = PHP_INT_MAX): array
🌰 示例:
$url = "name=小明&age=18"; $params = explode('&', $url); print_r($params); // 输出:Array ( [0] => name=小明 [1] => age=18 )
💡 升级版:用list()
和each()
快速提取键值对(PHP7+已废弃,建议改用parse_str()
)
定义:用正则表达式匹配分隔符,适合复杂场景。
语法:preg_split(string $pattern, string $subject, int $limit = -1, int $flags = 0): array
🌰 示例:
$text = "苹果,香蕉;西瓜|葡萄"; $fruits = preg_split('/[,;|]/', $text); print_r($fruits); // 输出:Array ( [0] => 苹果 [1] => 香蕉 [2] => 西瓜 [3] => 葡萄 )
🎯 场景:处理用户输入的混乱分隔符(比如用“,”、“;”或“|”混合分隔的数据)
mb_substr()
前,确保字符串和函数编码一致(UTF-8最保险)! substr()
和mb_substr()
的负数start
参数表示从末尾倒数,但length
为负数会报错! 场景 | 推荐函数 | 特点 |
---|---|---|
简单截取 | substr() | 速度快,但不适合多字节 |
中文/多语言 | mb_substr() | 编码安全,必装mbstring扩展 |
按长度拆分 | str_split() | 生成字符数组超方便 |
按分隔符拆分 | explode() | 简单分隔符首选 |
复杂分隔符 | preg_split() | 正则表达式玩家必备 |
下次遇到字符串处理需求,记得掏出这篇文章,选择你的“剁”字符串神器吧!🔥
本文由 业务大全 于2025-08-26发表在【云服务器提供商】,文中图片由(业务大全)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vds.7tqx.com/wenda/736811.html
发表评论