先說明:網上目前有很多這個問題的代碼,但是很多都是復制粘貼,沒有自己實踐,而且代碼有邏輯問題,下面的代碼由我自己編寫。
話不多說
/**   * 該函數是對于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編碼中一個漢字是占據3個字節的,對于其他的編碼的字符串,中文占據的字節各有不同,自己需要去修改這個數a        $newStr .= substr($str, $i, 3);//此處a=3;        $i+=2;        $len += 2; //截取了三個字節之后,截取字符串的終止偏移量也要隨著每次漢字的截取增加a-1;      } else {        $newStr .= substr($str, $i, 1);      }    }    return $newStr;  }以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持VeVb武林網!
新聞熱點
疑難解答
圖片精選