博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP之mb_convert_case使用
阅读量:5173 次
发布时间:2019-06-13

本文共 2943 字,大约阅读时间需要 9 分钟。

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

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 » .
  • 更多关于 Unicode 属性的信息,请查看 » 。

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 | 0xxxxxxx0000 0080-0000 07FF | 110xxxxx 10xxxxxx0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

跟据上表,解读 UTF-8 编码非常简单。如果一个字节的第一位是0,则这个字节

单独就是一个字符;如果第一位是1,则连续有多少个1,就表示当前字符占用多少个字节。
因为多字节的utf-8编码值的前一位都是以1开头。

文章参考

转载注明出处

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

你可能感兴趣的文章
【无聊放个模板系列】BZOJ 3172 (AC自动机)
查看>>
【BZOJ 4503】4503: 两个串 (FFT)
查看>>
《移动平台开发实践》第1周作业
查看>>
文件上传(实例)
查看>>
ROS在rviz中实时显示轨迹(nav_msgs/Path消息的使用)
查看>>
BZOJ 1443 游戏(二分图博弈)
查看>>
Ubuntu修改默认root及密码
查看>>
linux中安装typecho的pathinfo配置
查看>>
git解决 remote: Permission to wuheng1991/site-manager.git denied to XXX
查看>>
MSIL实用指南-struct的生成和操作
查看>>
编译与运行、解释程序与编译程序
查看>>
异步编程的优势和难点
查看>>
P1008 三连击
查看>>
平衡树(模板+文艺平衡树)
查看>>
汉字注音符号学习(引用自维基百科)
查看>>
opencv_python学习笔记十三
查看>>
[封装] 修改NSString中部分字段的颜色
查看>>
void指针(void*)用法
查看>>
Android:TextView控件
查看>>
Shell与脚本
查看>>