当前位置: 首页 > 后端技术 > PHP

PHP的mb_convert_case使用

时间:2023-03-30 05:59:52 PHP

mb_convert_case(PHP4>=4.3.0,PHP5,PHP7)mb_convert_case—对字符串执行大小写折叠mb_convert_case—对字符串执行大小写转换$encoding=mb_internal_encoding()])//对字符串进行大小写折叠,按照mode指定的方式进行转换。//对字符串进行大小写折叠,转换方式由mode指定。参数str正在转换的字符串。要转换的字符串。mode转换的模式。它可以是MB_CASE_UPPER、MB_CASE_LOWER或MB_CASE_TITLE之一。转换的模式。它可以是MB_CASE_UPPER、MB_CASE_LOWER和MB_CASE_TITLE之一。encoding编码参数是字符编码。如果省略,将使用内部字符编码值。编码参数是字符编码。如果省略,则使用内部字符编码。返回值以模式指定的方式转换的字符串的大小写折叠版本。ExamplesAAA"Aaa"functionmb_convert_case_utf8_variation($s){$arr=preg_split("//u",$s,-1,PREG_SPLIT_NO_EMPTY);var_dump($arr);$结果=“”;$模式=假;foreach($arras$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;如果($mode){如果(!$res){$mode=false;}}elseif($res){$mode=true;$char=mb_convert_case($char,MB_CASE_TITLE,"UTF-8");}$结果.=$char;}return$result;}echomb_convert_case_utf8_variation('AAA"aaa"').PHP_EOL;//AAA"Aaa"echomb_convert_case("HelloChina",MB_CASE_UPPER).PHP_EOL;//HELLO中国echomb_convert_case("HelloChina",MB_CASE_UPPER,"GBK").PHP_EOL;//HELLOChinaExtensionUnicode对比strtolower()和strtoupper()等标准大小写折叠函数,根据Unicode字符属性进行大小写折叠.因此,此函数的行为不受语言环境设置的影响,它可以转换任何具有“字母”属性的字符,例如A-umlaut(?)。与标准的大小写转换函数如strtolower()、strtoupper()相比,大小写转换是在Unicode字符属性的基础上进行的,因此该函数的行为不受语言环境设置的影响,可以转换任何具有“字母”属性,例如变音符号A(?)有关Unicode属性的更多信息,请参阅?http://www.unicode.org/unicod...有关Unicode属性的更多信息,请参阅?http://www.unicode.org/unicod...。UTF-8编码规则对于单字节符号,字节的第一位设置为0,后7位为该符号的Unicode编码。所以对于英文字母,UTF-8编码和ASCII编码是一样的。对于一个n字节的符号(n>1),第一个字节的前n位全部设为1,第n+1位设为0,后面字节的前两位全部设为10其余未提及的二进制位均为该符号的Unicode编码。Unicode符号范围|UTF-8编码方式(十六进制)|(二进制)--------------------+--------------------------------------------00000000-0000007F|0xxxxxxx00000080-000007FF|110xxxxx10xxxxxx00000800-0000FFFF|1110xxxx10xxxxxx10xxxxxx00010000-0010FFFF|11110xxx10xxxxxx10xxxxxx10xxxxxx根据上表,解读UTF-8编码就很简单了。如果一个字节的第一位是0,那么这个字节就是一个单独的字符;如果第一位为1,则一行中有多少个1表示当前字符占多少字节。因为多字节utf-8编码值的首位以1开头。文章参考http://php.net/manual/en/func...转载请注明出处