0

0

字符串怎么转成小写_PHP字符串大小写转换方法【详解】

看不見的法師

看不見的法師

发布时间:2026-03-12 20:58:58

|

794人浏览过

|

来源于php中文网

原创

PHP字符串转小写应优先用mb_strtolower($str, 'UTF-8'),因strtolower()仅支持ASCII;处理JSON/HTML需先解析再转换文本内容,避免破坏结构。

字符串怎么转成小写_php字符串大小写转换方法【详解】

PHP 字符串转小写用 strtolower(),但要注意编码

直接用 strtolower() 能处理 ASCII 字符(英文、数字、符号),但遇到中文、日文、俄文或带重音的西欧字母(比如 é, ñ)会出乱码或原样返回——它只认单字节编码,不支持 UTF-8。

  • 如果确定字符串全是英文,strtolower('HELLO WORLD')'hello world' 安全可靠
  • 如果字符串来自表单、数据库或 API,大概率是 UTF-8 编码,这时必须换函数
  • 别试图用 mb_strtolower($str, 'UTF-8') 却漏写第二个参数:默认编码依赖 mb_internal_encoding() 设置,线上环境常不一致,显式传参更稳

UTF-8 字符串转小写必须用 mb_strtolower()

mb_strtolower() 是多字节安全的替代方案,但行为和 strtolower() 不完全一样:它依赖系统安装的 mbstring 扩展,且对某些语言(如土耳其语)的大小写规则支持有限。

  • 确保扩展已启用:extension=mbstringphp.ini 中未被注释
  • 调用时务必指定编码:mb_strtolower($str, 'UTF-8'),不能只写 mb_strtolower($str)
  • 注意空字符串或 null 输入:mb_strtolower(null, 'UTF-8') 返回 ''(空字符串),不是 null,业务逻辑里要提前判断
  • 性能上比 strtolower() 略慢,高频调用场景(如循环处理上万条数据)可先用 is_ascii_only($str) 快速分支判断,再分发处理

为什么 mb_convert_case() 不推荐用于单纯转小写

mb_convert_case() 支持 MB_CASE_LOWER,看起来功能重叠,但它设计初衷是做「词首大写」「全大写」等复合转换,内部做了额外的语言区域检测,开销更大,且在部分 PHP 版本中对非拉丁语系支持不稳定。

绘蛙
绘蛙

电商场景的AI创作平台,无需高薪聘请商拍和文案团队,使用绘蛙即可低成本、批量创作优质的商拍图、种草文案

下载
  • 纯转小写场景下,mb_strtolower() 更轻量、行为更可预测
  • mb_convert_case($str, MB_CASE_LOWER, 'UTF-8')mb_strtolower($str, 'UTF-8') 结果通常一致,但前者多一层抽象,出问题时排查路径更长
  • 除非你在同一段逻辑里还要做标题化(MB_CASE_TITLE)或首字母大写,否则没必要引入这个函数

常见错误:用 strtoupper() / strtolower() 处理 JSON 或 HTML 字符串

直接对整个 JSON 字符串或 HTML 片段调用大小写函数,会破坏结构——比如把 "id" 变成 "ID" 导致 JSON 解析失败,或把 <div> 变成 <code><div> 后又混入大写属性值引发渲染异常。<p><span>立即学习</span>“<a href="https://pan.quark.cn/s/7fc7563c4182" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">PHP免费学习笔记(深入)</a>”;</p> <ul> <li>先提取需转换的文本内容(如用 <code>json_decode() 解析后再处理字段值),再转大小写

  • HTML 场景建议用 DOM 操作(DOMDocument)读取文本节点,避免正则或全量字符串替换
  • 如果只是想让输出“看着小写”,比如 URL 路径或 class 名,应从生成源头控制,而不是事后用大小写函数硬刷
  • 有些边界情况没写进文档里:比如 mb_strtolower("İ", 'UTF-8')(带点大写 I,土耳其语)在不同 ICU 版本下结果可能不同,这种语言敏感操作,上线前最好拿真实语料跑一遍。

    相关文章

    PHP速学教程(入门到精通)
    PHP速学教程(入门到精通)

    PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

    下载

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    热门AI工具

    更多
    DeepSeek
    DeepSeek

    幻方量化公司旗下的开源大模型平台

    豆包大模型
    豆包大模型

    字节跳动自主研发的一系列大型语言模型

    WorkBuddy
    WorkBuddy

    腾讯云推出的AI原生桌面智能体工作台

    腾讯元宝
    腾讯元宝

    腾讯混元平台推出的AI助手

    文心一言
    文心一言

    文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

    讯飞写作
    讯飞写作

    基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

    即梦AI
    即梦AI

    一站式AI创作平台,免费AI图片和视频生成。

    ChatGPT
    ChatGPT

    最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

    相关专题

    更多
    json数据格式
    json数据格式

    JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

    457

    2023.08.07

    json是什么
    json是什么

    JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

    547

    2023.08.23

    jquery怎么操作json
    jquery怎么操作json

    操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

    335

    2023.10.13

    go语言处理json数据方法
    go语言处理json数据方法

    本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

    82

    2025.09.10

    c语言中null和NULL的区别
    c语言中null和NULL的区别

    c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

    254

    2023.09.22

    java中null的用法
    java中null的用法

    在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

    1089

    2024.03.01

    js 字符串转数组
    js 字符串转数组

    js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

    760

    2023.08.03

    js截取字符串的方法
    js截取字符串的方法

    js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

    221

    2023.09.04

    C# ASP.NET Core微服务架构与API网关实践
    C# ASP.NET Core微服务架构与API网关实践

    本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

    76

    2026.03.11

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    相关下载

    更多

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    PHP课程
    PHP课程

    共137课时 | 13.4万人学习

    JavaScript ES5基础线上课程教学
    JavaScript ES5基础线上课程教学

    共6课时 | 11.3万人学习

    PHP新手语法线上课程教学
    PHP新手语法线上课程教学

    共13课时 | 1.0万人学习

    最新文章

    更多
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号