mb_convert_case

  • (PHP 4 >= 4.3.0, PHP 5, PHP 7)
  • mb_convert_case — Perform case folding on a string
  • mb_convert_case — 对字符串进行大小写转换

Description

string mb_convert_case ( string $str , int $mode [, string $encoding = mb_internal_encoding() ] )
//Performs case folding on a string, converted in the way specified by mode.
//对一个 string 进行大小写转换,转换模式由 mode 指定。

Parameters

str

  • The string being converted.
  • 要被转换的 string。

mode

  • The mode of the conversion. It can be one of MB_CASE_UPPER, MB_CASE_LOWER, or MB_CASE_TITLE.
  • 转换的模式。它可以是 MB_CASE_UPPERMB_CASE_LOWERMB_CASE_TITLE 的其中一个。

encoding

  • The encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used.
  • encoding 参数为字符编码。如果省略,则使用内部字符编码。

Return Values

  • A case folded version of string converted in the way specified by mode.
  • 按 mode 指定的模式转换 string 大小写后的版本。

Examples

<?php
/*** Created by PhpStorm.* User: zhangrongxiang* Date: 2018/1/28* Time: 下午3:16*//**Example #1 mb_convert_case() 例子*/
$str = "mary had a Little lamb and she loved it so";
$str = mb_convert_case( $str, MB_CASE_UPPER, "UTF-8" ) . PHP_EOL;
echo $str; // 输出 MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
$str = mb_convert_case( $str, MB_CASE_TITLE, "UTF-8" ) . PHP_EOL;
echo $str; // 输出 Mary Had A Little Lamb And She Loved It So/**Example #2 非拉丁 UTF-8 文本的mb_convert_case() 例子*/
$str = "Τάχιστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός";
$str = mb_convert_case( $str, MB_CASE_UPPER, "UTF-8" ) . PHP_EOL;
echo $str; // 输出 ΤΆΧΙΣΤΗ ΑΛΏΠΗΞ ΒΑΦΉΣ ΨΗΜΈΝΗ ΓΗ, ΔΡΑΣΚΕΛΊΖΕΙ ΥΠΈΡ ΝΩΘΡΟΎ ΚΥΝΌΣ
$str = mb_convert_case( $str, MB_CASE_TITLE, "UTF-8" ) . PHP_EOL;
echo $str; // 输出 Τάχιστη Αλώπηξ Βαφήσ Ψημένη Γη, Δρασκελίζει Υπέρ Νωθρού Κυνόσ/*** mb_strtolower() - 使字符串小写* mb_strtoupper() - 使字符串大写* strtolower() - 将字符串转化为小写* strtoupper() - 将字符串转化为大写* ucfirst() - 将字符串的首字母转换为大写* ucwords() - 将字符串中每个单词的首字母转换为大写*/echo mb_convert_case( 'AAA "aaa"', MB_CASE_TITLE ) . PHP_EOL; //Aaa "aaa"
// but  I want this ===> AAA "Aaa"function mb_convert_case_utf8_variation( $s ) {$arr    = preg_split( "//u", $s, - 1, PREG_SPLIT_NO_EMPTY );var_dump($arr);$result = "";$mode   = false;foreach ( $arr as $char ) {$res = preg_match('/\\p{Mn}|\\p{Me}|\\p{Cf}|\\p{Lm}|\\p{Sk}|\\p{Lu}|\\p{Ll}|' .'\\p{Lt}|\\p{Sk}|\\p{Cs}/u', $char ) == 1;if ( $mode ) {if ( ! $res ) {$mode = false;}} elseif ( $res ) {$mode = true;$char = mb_convert_case( $char, MB_CASE_TITLE, "UTF-8" );}$result .= $char;}return $result;
}echo mb_convert_case_utf8_variation('AAA "aaa"').PHP_EOL;
//AAA "Aaa"echo mb_convert_case("Hello 中国",MB_CASE_UPPER).PHP_EOL;//HELLO 中国
echo mb_convert_case("Hello 中国",MB_CASE_UPPER,"GBK").PHP_EOL;//HELLO 中国

Extension

Unicode

  • By contrast to the standard case folding functions such as strtolower() and strtoupper(), case folding is performed on the basis of the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have 'alphabetic' property, such as A-umlaut (Ä).
  • 和类似 strtolower()、strtoupper() 的标准大小写转换函数相比, 大小写转换的执行根据 Unicode 字符属性的基础。 因此此函数的行为不受 语言环境(locale)设置的影响,能够转换任意具有“字母”属性的字符,例如元音变音A(Ä)
  • For more information about the Unicode properties, please see » http://www.unicode.org/unicode/reports/tr21/.
  • 更多关于 Unicode 属性的信息,请查看 » http://www.unicode.org/unicode/reports/tr21/。

UTF-8 编码规则

  • 对于单字节的符号,字节的第一位设为0,后面7位为这个符号的 Unicode 码。
    因此对于英语字母,UTF-8 编码和 ASCII 码是相同的。

  • 对于n字节的符号(n > 1),第一个字节的前n位都设为1,第n + 1位设为0,
    后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的 Unicode 码。

Unicode符号范围     |        UTF-8编码方式
(十六进制)          |              (二进制)
----------------------+---------------------------------------------
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

跟据上表,解读 UTF-8 编码非常简单。如果一个字节的第一位是0,则这个字节
单独就是一个字符;如果第一位是1,则连续有多少个1,就表示当前字符占用多少个字节。
因为多字节的utf-8编码值的前一位都是以1开头。

文章参考

  • http://php.net/manual/en/function.mb-convert-case.php

转载注明出处

转载于:https://www.cnblogs.com/zhangrxiang/p/8371398.html

PHP之mb_convert_case使用相关推荐

  1. PHP查看PECL模块包含的函数

    为什么80%的码农都做不了架构师?>>>    http://php.net/manual/zh/function.get-extension-funcs.php 查看PECL扩展 ...

  2. php7 字符串转数字,strtoupper()

    strtoupper() (PHP 4, PHP 5, PHP 7) 将字符串转化为大写 说明strtoupper(string$string) :string 将$string中所有的字母字符转换为 ...

  3. May 18:PHP 函数

    a 函数    说明 abs    绝对值 acos    反余弦 acosh    反双曲余弦 addcslashes    以 C 语言风格使用反斜线转义字符串中的字符 addslashes    ...

  4. PHP 7系列版本(7.0、7.1、7.2、7.3、7.4)新特性

    PHP很久不用了,很多新特性都搞不清了,稍微整理一下. 标量参数类型声明[7.0] 返回值类型声明[7.0] Nullable类型[7.1] 属性值类型声明[7.4] Void 函数[7.1] 箭头函 ...

  5. 用trie树实现输入提示功能,输入php函数名,提示php函数

    参照刘汝佳的trie树 结构体 #include "stdio.h"#include"stdlib.h"#include"string.h" ...

  6. vim php tab 补全提示

    在vimrc中加入下面这段,把方法名保存在一个文件中引入到字典中 set dictionary+=/home/lucifer/package/PHP_function.txt     set comp ...

  7. 为vim添加php和css函数字典

    今天早上修改grub.cfg是发现css.vim报错.于是google,收获颇多,赶快记录. 1.css的修正方案: colorizer:        https://github.com/lily ...

  8. vim增加php自动补全

    from: http://onopc.com/2010/12/30/154.html vim增加php自动补全 在vim配置文件/etc/vimrc中加入如下内容: au FileType php c ...

  9. 2019年PHP面试题整理

    这段时间在面试php开发岗位,现在有时间就来整理一些我遇到的一些面试题目. 一.MYSQL索引 1.索引的类型 答:MySQL目前主要有以下几种索引类型: 1)普通索引(INDEX): 2)唯一索引( ...

  10. 【精讲】2022年PHP中高级面试题(二)

    1.Iptolong long2ip 注意转换成整形的时候负数问题 function IP2Long($ip) {$ips = explode('.', $ip); if(count($ips) != ...

最新文章

  1. Java 程序代码优化方法
  2. 脑网络的可塑性——随时都在发生
  3. python selenium unittest_python+selenium+unittest单元测试框架
  4. xgboost 的 get_fscore()
  5. STM32串口的部分映射与完全映射
  6. Beta 冲刺(1/7)
  7. [攻防世界 pwn]——level3
  8. python del函数_python中del函数的垃圾回收
  9. NumPy 基础用法
  10. svg矩形参数_SVG矩形和其他SVG形状
  11. C#使用双堆栈创建队列
  12. layu多个文件上传php,文件上传 · ThinkPHP6.0 · 看云
  13. html 音乐代码生成器,在线自动生成音乐播放器
  14. matlab色差,科学网—实用图片处理技巧(1)---MATLAB学习笔记 - 冯竟超的博文
  15. c语言校招笔试试题,腾讯2014校园招聘C语言笔试题
  16. linux软硬链接 计数,深入理解Linux的软链接和硬链接
  17. Micrium uC-Probe导入.elf文件的问题
  18. python收取126或163邮件
  19. Unable to prase template Class Error message: Index 0 out of bounds for length 0
  20. 场景式营销——新商业时代的生存法则

热门文章

  1. js常用处理请求到的数据的方法(即map,filter,find,findIndex,some,every一些常用方法的使用)
  2. Linux软连接 删除/查看
  3. PHPnow中ZendDebugger与ZendOptimizer 共存
  4. 线程池(ThreadPoolExecutor ) 的 创建、关闭、监控
  5. IDEA配置更加流畅 写代码起飞停不下来~
  6. Consumer clientId=consumer-1, groupId=console-consumer-950] Connection to node -1 could not be
  7. Django(五):视图和路由系统
  8. .NET C#到Java没那么难,MVC篇
  9. bzoj1029题解
  10. 利用Flash XMLSocket实现”服务器推”技术