91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php如何實現字符串無亂碼翻轉

發布時間:2021-10-28 09:52:18 來源:億速云 閱讀:148 作者:iii 欄目:編程語言

這篇文章主要講解了“php如何實現字符串無亂碼翻轉”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“php如何實現字符串無亂碼翻轉”吧!

php實現字符串無亂碼翻轉的方法:1、創建一個PHP示例文件并設置編碼為utf8;2、用mb_strlen函獲取算utf8字符串的長度;3、將字符串拆開放入數組;4、將數組按鍵名大小反轉;5、將數組中單個字符元素重新組合成字符串即可。

php如何實現字符串無亂碼翻轉

本文操作環境:Windows7系統、PHP7.1版、DELL G3電腦

php怎么實現字符串無亂碼翻轉?

PHP中實現中文字符串反轉避免亂碼的方法 :

今天博主在網上看PHP面試題的時候,看到了這么一個問題,如何實現字符串反轉,當時想不是有一個內置函數strrev能實現這個功能嗎?后來試了一下,這個函數只能對英文字符進行反轉,對中文會有亂碼出現。主要原因還是編碼上的問題。

PHP中utf-8編碼中文當作3個字節計算,gb2312當作2個字節計算。所以想要實現中文字符串的一些功能,首先就要解決編碼問題。

今天這個功能就是從編碼處下手的。接下來開始講實現的功能,今天要用到這么幾個函數:

is_string()//判斷參數是否為字符串,這個大家應該都知道
mb_check_encoding()//用來檢查給定的字符串是否屬于指定的編碼
mb_strlen()//用來獲取字符串長度
mb_substr()//用來截取字符串中的字符
krsort()//將數組按鍵名由大到小排序上述

上面用到了3個mb開頭的函數,mb開頭的函數都是用于處理多字節字符串的,主要是能指定字符串編碼。

mb_check_encoding()接受兩個參數,第一個參數要是字符串,第二個參數是輸入一個字符編碼,然后判斷該字符串是否屬于該編碼,返回一個bool值,若省略第二個參數則默認為內部編碼,可通過mb_internal_encoding()查看。

mb_strlen()有兩個參數,第一個是字符串內容,第二個是字符串的編碼。

mb_substr()有四個參數,第一個是要截取的字符串內容,第二個是開始截取的位置,第三個是截取的長度,第四個是字符串的編碼(在本例中要選擇utf-8,其他編碼都不會得到正確的結果)。

接下來就是完整的代碼了,簡略的注釋都已經標注好了,其實只要看一遍都能看懂:

<?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);
/*  得到結果:
 *  這是我的技術博客,歡迎多多來訪!
 *  !訪來多多迎歡,客博術技的我是這
 */
?>

感謝各位的閱讀,以上就是“php如何實現字符串無亂碼翻轉”的內容了,經過本文的學習后,相信大家對php如何實現字符串無亂碼翻轉這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

溆浦县| 海林市| 临朐县| 敦煌市| 绥中县| 策勒县| 苍梧县| 安徽省| 东乡| 盐津县| 建阳市| 英超| 福安市| 贵南县| 沙河市| 陆川县| 大宁县| 泉州市| 丹寨县| 北京市| 明水县| 正阳县| 京山县| 曲靖市| 昌吉市| 云林县| 江津市| 疏附县| 澄迈县| 灵川县| 衡阳县| 金山区| 冀州市| 清远市| 宜都市| 永和县| 日喀则市| 耒阳市| 姜堰市| 新乐市| 怀化市|