尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

PHP 字符串函数全指南

PHP 字符串函数全指南
📅 发布时间:2026/6/20 8:08:39

PHP 字符串函数全指南

  • PHP 的字符串函数是核心内置能力,覆盖创建、修改、查找、格式化等常见操作,广泛用于表单处理、文本解析、数据清洗与页面渲染
  • 自 PHP 3 起可用,PHP 5 开始补充了不区分大小写的查找/替换等函数;多字节字符串需搭配 mbstring 扩展
  • 了解常见函数的语义与边界行为,对避免编码问题和性能陷阱非常关键

核心概念

  • 字符串是字节序列:strlen统计字节数而非字符数,UTF-8 中文会占多字节
  • 多字节兼容:对 UTF-8 使用mb_strlen、mb_substr等以避免截断半个字符
  • 位置从 0 开始:substr、strpos等均以 0 作为首位索引
  • 不变性视角:虽然 PHP 字符串可变,但多数操作返回新字符串,注意赋值覆盖

常用函数速览

  • 长度与截取:strlen、substr
  • 查找与替换:strpos/stripos、str_replace/str_ireplace
  • 修剪与填充:trim/ltrim/rtrim、str_pad
  • 大小写转换:strtolower/strtoupper、ucfirst/ucwords
  • 分割与合并:explode、implode
  • 重复与格式化:str_repeat、sprintf
  • HTML 安全:htmlspecialchars、nl2br

查找与替换

查找首次出现位置(区分大小写 / 忽略大小写)

strpos("Hello World","World");// 6stripos("Hello World","world");// 6

替换子串

str_replace("World","PHP","Hello World");// Hello PHPstr_ireplace("world","PHP","Hello World");// Hello PHP

查找最后出现位置

strrpos("One Two Two","Two");// 8

截取与拼接

基本截取

substr("Hello World",0,5);// Hellosubstr("Hello World",-5);// World

拼接建议

  • 少量拼接可用.运算符
  • 批量拼接避免循环中频繁.=, 先收集数组再统一implode
$parts=["Hello","PHP","World"];echoimplode(" ",$parts);// Hello PHP World

大小写与格式化

大小写转换

strtolower("PHP");// phpstrtoupper("php");// PHPucfirst("hello php");// Hello phpucwords("hello world");// Hello World

格式化输出

sprintf("ID:%04d Name:%s",27,"Alice");// ID:0027 Name:Alice

修剪与填充

修剪首尾空白或指定字符

trim(" Hello ");// Helloltrim(" Hello ");// Hellortrim(" Hello ");// Hellotrim("xxHelloxx","x");// Hello

填充到目标长度

str_pad("ID",5,"0",STR_PAD_LEFT);// 000IDstr_pad("A",3,"-",STR_PAD_RIGHT);// A--

分割与合并

分割字符串为数组

explode(",","a,b,c");// ["a","b","c"]

合并数组为字符串

implode("-",["a","b","c"]);// a-b-c

HTML 安全与换行

防止 XSS,将特殊字符转为 HTML 实体

htmlspecialchars("<b>X</b>",ENT_QUOTES,"UTF-8");// &lt;b&gt;X&lt;/b&gt;

将换行转为<br>标签

nl2br("Line1\nLine2");// Line1<br />Line2

多字节字符串(UTF-8 等)

避免把中文切断,使用 mbstring 函数

mb_strlen("你好","UTF-8");// 2mb_substr("你好世界",0,2,"UTF-8");// 你好
  • 与正则结合时,优先使用/u修饰符或mb_前缀函数,确保按字符而非字节匹配

正则相关(补充)

  • preg_match、preg_replace用于复杂模式匹配与替换
  • 处理 UTF-8 时建议加u修饰符,避免与字节级匹配混淆
preg_match('/^\p{Han}+$/u',"你好");// 1(只含中文)$text=preg_replace('/world/i','PHP','Hello World');// Hello PHP

性能与最佳实践

  • 连接多个片段优先收集数组并用implode,一次性拼接比循环中的.=更快
  • 对长文本频繁替换,考虑顺序、大小写敏感版本以及是否预编译正则模式
  • 严格处理编码:输入输出均应确认编码一致(通常 UTF-8)
  • 对用户输入渲染到页面时,始终进行htmlspecialchars

常见坑

  • strlen在 UTF-8 下返回字节数,不是字符数;中文会出现长度“偏大”
  • substr在多字节字符串上可能截断半个字符,需改用mb_substr
  • trim第二参数不是正则,是字符列表;传入的每个字符都会被剔除
  • str_replace默认区分大小写;忽略大小写用str_ireplace
  • strpos返回位置或false,位置为 0 与false不同,比较时用===

小抄速表

  • 长度:strlen(字节)、mb_strlen(字符)
  • 截取:substr、mb_substr
  • 查找:strpos/stripos、strrpos
  • 替换:str_replace/str_ireplace、preg_replace
  • 变换:strtolower/strtoupper、ucfirst/ucwords
  • 分割/合并:explode、implode
  • 修剪/填充:trim/ltrim/rtrim、str_pad
  • 格式化/重复:sprintf、str_repeat
  • HTML 安全:htmlspecialchars、nl2br

结语

  • 掌握字符串函数是 PHP 开发的基本功。围绕“编码一致性”“多字节兼容”“性能与安全”做取舍,能让你的文本处理既稳健又高效
  • 实战中优先选用 mbstring 版本的函数处理 UTF-8 文本,并为所有输出到 HTML 的字符串应用htmlspecialchars。对于复杂文本处理,考虑正则与流式方案配合使用

相关新闻

  • Kotlin vs Dart:当“优雅”变成心智负担,我选择了更简单的 Dart
  • 48654
  • DeepMD-kit: 深度学习的分子动力学(MD)模拟工具包

最新新闻

  • 2026年6月最新百达翡丽中国官方售后客服中心地址服务热线网点 - 百达翡丽服务中心
  • 2026年6月最新浪琴中国官方售后服务网点客服地址及电话 - 浪琴服务中心
  • 2026年6月最新卡地亚中国官方售后客服热线地址及服务网点查询 - 卡地亚服务中心
  • 2026北京劳力士二手回收门店盘点:一文匹配适合你的店铺。附黑水鬼、日志型、迪通拿估价指南 - 博客万
  • 2026年6月最新江诗丹顿中国官方售后服务地址与客服电话网点列表 - 江诗丹顿服务中心
  • 终极指南:如何在Windows 11上安装免费Bili.UWP客户端享受原生B站体验

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号