この記事では、文字化けを避けるためにPHPで中国語の文字列を反転する方法を主に紹介しますので、必要な友達に参考にしてください
上記では、mb で始まる 3 つの関数が使用されています。mb で始まる関数は、主に文字列エンコーディングを指定するために、マルチバイト文字列を処理するために使用されます。
mb_check_encoding() は 2 つのパラメータを受け入れます。最初のパラメータは文字列である必要があり、文字列がそのエンコードに属しているかどうかを判断し、ブール値を返します。 2 番目のパラメータを省略した場合、デフォルトで内部エンコーディングが使用され、mb_internal_encoding() を通じて表示できます。
mb_strlen() には 2 つのパラメータがあり、1 つ目は文字列の内容、2 つ目は文字列のエンコーディングです。
mb_substr() には 4 つのパラメータがあり、1 つ目はインターセプトする文字列の内容、2 つ目はインターセプトの開始位置、3 つ目はインターセプトの長さ、4 つ目はインターセプトのエンコーディングです。文字列 (この場合、UTF-8 が選択されており、他のエンコードでは正しい結果が得られません)。
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php header("Content-type:text/html;charset=utf-8"); $s="这是我的技术博客,欢迎多多来访!"; function str_rev($str){ //先判断参数是否为字符串,且为UTF8编码 if(!is_string($str)||!mb_check_encoding($str,"utf-8")){ die("输入的不是utf8类型的字符串"); } //用mb_strlen函获取算utf8字符串的长度 $length=mb_strlen($str,"utf-8"); //声明一个数组备用 $arr=array(); //将字符串拆开放入数组 for($i=0;$i<$length;$i++){ $arr[$i]=mb_substr($str,$i,1,"utf-8"); } //将数组按键名大小反转 krsort($arr); //将数组中单个字符元素重新组合成字符串 $str=implode("",$arr); //将翻转后的字符串返回 return $str; } echo $s."<br>"; echo str_rev($s); /* 得到结果: * 这是我的技术博客,欢迎多多来访! * !访来多多迎欢,客博术技的我是这 */
?>
如果文中有任何错误,敬请指出,以便完善。
本文来自:http://5655237.blog.51cto.com/5645237/1258300
相关推荐:
以上が文字化けを避けるためにPHPで中国語の文字列を反転する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。