news 2026/1/29 22:57:54

PHP 字符串函数全指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PHP 字符串函数全指南

PHP 字符串函数全指南

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

核心概念

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

常用函数速览

  • 长度与截取:strlensubstr
  • 查找与替换:strpos/striposstr_replace/str_ireplace
  • 修剪与填充:trim/ltrim/rtrimstr_pad
  • 大小写转换:strtolower/strtoupperucfirst/ucwords
  • 分割与合并:explodeimplode
  • 重复与格式化:str_repeatsprintf
  • HTML 安全:htmlspecialcharsnl2br

查找与替换

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

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_matchpreg_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(字符)
  • 截取:substrmb_substr
  • 查找:strpos/striposstrrpos
  • 替换:str_replace/str_ireplacepreg_replace
  • 变换:strtolower/strtoupperucfirst/ucwords
  • 分割/合并:explodeimplode
  • 修剪/填充:trim/ltrim/rtrimstr_pad
  • 格式化/重复:sprintfstr_repeat
  • HTML 安全:htmlspecialcharsnl2br

结语

  • 掌握字符串函数是 PHP 开发的基本功。围绕“编码一致性”“多字节兼容”“性能与安全”做取舍,能让你的文本处理既稳健又高效
  • 实战中优先选用 mbstring 版本的函数处理 UTF-8 文本,并为所有输出到 HTML 的字符串应用htmlspecialchars。对于复杂文本处理,考虑正则与流式方案配合使用
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/29 20:45:41

蚌埠不锈钢管 食品级卫生无菌输送

在工业管道系统选型决策中&#xff0c;智能化工具正加速普及&#xff0c;全生命周期价值已逐步取代初始采购成本&#xff0c;成为客户核心考量。浙江荣瑞管道科技有限公司顺应这一趋势&#xff0c;以全周期价值导向重构不锈钢管产品服务体系&#xff0c;为高洁净、高精度应用场…

作者头像 李华
网站建设 2026/1/27 23:13:35

基于SpringBoot+Vue的体育赛事交流平台毕业设计

博主介绍&#xff1a;✌ 专注于Java,python,✌关注✌私信我✌具体的问题&#xff0c;我会尽力帮助你。 一、研究目的 本研究旨在构建一个基于SpringBootVue的体育赛事交流平台&#xff0c;以满足现代体育爱好者对于赛事信息获取、交流互动以及个性化推荐的需求。具体研究目的…

作者头像 李华
网站建设 2026/1/25 4:11:14

质量门禁(Quality Gate)设计:不让一个有风险的构建上线

一、质量门禁的战略价值重构 在DevOps持续交付的浪潮中&#xff0c;传统测试环节面临两大困境&#xff1a; 缺陷滞后性 - 78%的生产环境缺陷源自未检出的早期代码问题&#xff08;2025年Gartner数据&#xff09; 质量成本悖论 - 修复生产环境缺陷的成本是开发阶段的30倍&…

作者头像 李华
网站建设 2026/1/28 19:35:46

技术鸿沟与角色突围:AI时代产品经理的能力重构与CAIE认证价值

随着人工智能技术从辅助工具向核心生产力转变&#xff0c;产品经理角色面临结构性挑战。本文基于行业调研数据&#xff0c;分析AI产品经理的能力缺口&#xff0c;探讨系统性学习路径的价值&#xff0c;并通过对比研究评估不同认证体系的特点。数据显示&#xff0c;具备AI系统化…

作者头像 李华
网站建设 2026/1/27 22:58:15

中小企业如何构建轻量级但有效的安全运营体系

许多中小企业面临同样的困境&#xff1a;既无预算组建专业安全团队&#xff0c;又无法承担安全事件带来的业务损失。于是陷入“不防护怕出事&#xff0c;建体系又太重”的两难。其实&#xff0c;安全运营不必大而全&#xff0c;关键在于聚焦核心资产、建立最小可行闭环。 本文基…

作者头像 李华
网站建设 2026/1/24 7:32:20

云服务器:云安全时代的“防护堡垒”

云服务器在硬件层面普及了可信计算芯片&#xff08;TPM/TCM&#xff09;&#xff0c;从底层保障服务器固件、系统的安全性。某云服务商在其云服务器中集成了TPM芯片&#xff0c;通过硬件加密技术&#xff0c;对服务器的启动过程进行安全验证&#xff0c;防止恶意软件篡改系统。…

作者头像 李华