先說明:網(wǎng)上目前有很多這個(gè)問題的代碼,但是很多都是復(fù)制粘貼,沒有自己實(shí)踐,而且代碼有邏輯問題,下面的代碼由我自己編寫。
話不多說
/** * 該函數(shù)是對(duì)于utf8編碼 * @author 2582308253@qq.com * @param string $str * @param int $start * @param int $length * @return string * @copyright 2017年2月27日下午1:46:10 */ function gbsubstr2($str, $start, $length) { $length = abs($length); $strLen = strlen($str); $len = $start + $length; $newStr = ''; for($i = $start; $i < $len && $i < $strLen; $i++) { if(ord(substr($str, $i, 1)) > 0xa0) { //utf8編碼中一個(gè)漢字是占據(jù)3個(gè)字節(jié)的,對(duì)于其他的編碼的字符串,中文占據(jù)的字節(jié)各有不同,自己需要去修改這個(gè)數(shù)a $newStr .= substr($str, $i, 3);//此處a=3; $i+=2; $len += 2; //截取了三個(gè)字節(jié)之后,截取字符串的終止偏移量也要隨著每次漢字的截取增加a-1; } else { $newStr .= substr($str, $i, 1); } } return $newStr; }
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持!
【網(wǎng)站聲明】本站除付費(fèi)源碼經(jīng)過測(cè)試外,其他素材未做測(cè)試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請(qǐng)勿用于商業(yè)用途。如損害你的權(quán)益請(qǐng)聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。