100分求個 檢拆字串長度

來源:互聯網
上載者:User
100分求個 檢測字串長度
$str[0] = "123asd你好[哈哈]"
$str[1] = "123asd你好[你好不好啊]"
//一個中文一個字元(utf-8的編碼) 符號 [這裡面的字和外邊的符號算一個字元]
然後計算長度
結果是$str[0]和$str[1]為長度9

最好寫成一個函數。謝謝了


------解決方案--------------------
我沒太看懂樓主的題,不過函數,手頭上有一個。
PHP code
/**     * 得到utf8 的長度     * @author mu_rain     * @param String $str     * @return Int     */    static function strlen_utf8($str) {        $i = 0;        $count = 0;        $len = strlen ($str);        while ($i < $len) {            $chr = ord ($str[$i]);            $count++;            $i++;            if($i >= $len) break;            if($chr & 0x80) {                $chr <<= 1;                while ($chr & 0x80) {                    $i++;                    $chr <<= 1;                }            }        }        return $count;    }
------解決方案--------------------
PHP code
    function myLen($str,$startTag='[',$endTag=']',$encoding='utf-8')    {        $st = preg_quote($startTag);        $et = preg_quote($endTag);        return mb_strlen(preg_replace("#{$st}[^{$et}]*{$et}#","~",$str),$encoding);    }echo myLen("123asd你好[哈哈]");//9
------解決方案--------------------
附贈字串函數一堆 ,慢用。
PHP code

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.