php按字符無亂碼截取中文的方法
本文實例講述了php按字符無亂碼截取中文的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:
<?php //$str 待截取的字符串 //$len 截取的字符個數(shù) //$chars 已經(jīng)截取的字符數(shù) //$res 保存的字符串 //$chars 保存已經(jīng)截取的字符串個數(shù) //$offset 截取的偏移量 //$length 字符串的字節(jié)數(shù) //若$len>$str的字符個數(shù),造成無謂的while循環(huán),($offset<$length限定) function utf8sub($str,$len){ if($len<=0){ return ; } $res=""; $offset=0; $chars=0; $length=strlen($str); while($chars<$len && $offset<$length){ $hign=decbin(ord(substr($str,$offset,1))); if(strlen($hign)<8){ $count=1; }elseif(substr($hign,0,3)=="110"){ $count=2; }elseif(substr($hign,0,4)=="1110"){ $count=3; }elseif(substr($hign,0,5)=="11110"){ $count=4; }elseif(substr($hign,0,6)=="111110"){ $count=5; }elseif(substr($hign,0,7)=="1111110"){ $count=6; } $res.=substr($str,$offset,$count); $offset+=$count; $chars+=1; } return $res; } function utf8sub1($str,$len){ $chars=0; $res=""; $offset=0; $length=strlen($str); while($chars<$len && $offset<$length){ $hign=decbin(ord(substr($str,$offset,1))); if(strlen($hign)<8){ $count=1; }elseif($hign & "11100000"=="11000000"){ $count=2; }elseif($hign & "11110000"=="11100000"){ $count=3; }elseif($hign & "11111000"=="11110000"){ $count=4; }elseif($hign & "11111100"=="11111000"){ $count=5; }elseif($hign & "11111110"=="11111100"){ $count=6; } $res.=substr($str,$offset,$count); $chars++; $offset+=$count; } return $res; } $a="中華ah人民hdj"; echo utf8sub($a,5); ?>
希望本文所述對大家的php程序設(shè)計有所幫助。
相關(guān)文章
php中base64_decode與base64_encode加密解密函數(shù)實例
這篇文章主要介紹了php中base64_decode與base64_encode加密解密函數(shù),實例分析了base64加密解密函數(shù)的具體用法,具有一定的實用價值,需要的朋友可以參考下2014-11-11PHP 抽象方法與抽象類abstract關(guān)鍵字介紹及應(yīng)用
抽象方法指沒有方法體的方法,只要一個類里面有一個方法是抽象方法,那么這個類就要定義為抽象類,不了解的朋友可以看看2014-10-10PHP+Oracle本地開發(fā)環(huán)境搭建方法詳解
在本篇文章中小編給大家分享了關(guān)于PHP+Oracle本地開發(fā)環(huán)境搭建的步驟和技巧,需要的朋友們學(xué)習(xí)下。2019-04-04PHP 數(shù)據(jù)結(jié)構(gòu) 算法描述 冒泡排序 bubble sort
多次循環(huán)進行比較,每次比較時將最大數(shù)移動到最上面。每次循環(huán)時,找出剩余變量里的最大值,然后減小查詢范圍。這樣經(jīng)過多次循環(huán)以后,就完成了對這個數(shù)組的排序2011-07-07php使用PDO從數(shù)據(jù)庫表中讀取數(shù)據(jù)的實現(xiàn)方法(必看)
下面小編就為大家?guī)硪黄猵hp使用PDO從數(shù)據(jù)庫表中讀取數(shù)據(jù)的實現(xiàn)方法(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06php中cURL?error?60:SSL?certificate?problem:?unable?to?
PHP中cURL錯誤60通常表示SSL證書問題,即無法獲取本地頒發(fā)機構(gòu)證書,這通常是由于cURL無法驗證遠程服務(wù)器的SSL證書導(dǎo)致的,本給大家介紹了如何解決php中cURL?error?60,需要的朋友可以參考下2023-12-12php 判斷頁面或圖片是否經(jīng)過gzip壓縮的方法
下面小編就為大家?guī)硪黄猵hp 判斷頁面或圖片是否經(jīng)過gzip壓縮的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04