日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > php >内容正文

php

php兼容编码,PHP截取字符串编码(兼容utf-8和gb2312)

發(fā)布時(shí)間:2024/1/23 php 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php兼容编码,PHP截取字符串编码(兼容utf-8和gb2312) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

昨天晚上和今天上午看了字符編碼的問(wèn)題,還有一些別人截取字符串的函數(shù),自己也寫(xiě)了一個(gè),兼容utf-8和gb2312的

//截取字符串長(zhǎng)度。支持utf-8和gb2312編碼。若為gb2312,先將其轉(zhuǎn)為utf-8,在utf-8的基礎(chǔ)上截取然后再轉(zhuǎn)換回來(lái) function cut_string($str,$from=1,$length=10,$code='utf-8',$rear='...'){ if($code!='utf-8'){//總是將字符串轉(zhuǎn)為utf-8編碼 $str=iconv($code,'utf-8',$str); } $str_len=mb_strlen($str,'utf-8');//字符串的長(zhǎng)度 if($from>$str_len){//如果截取開(kāi)始位置大于字符串長(zhǎng)度,截取后面$length個(gè) $from=$str_len-$length+1; $from=($from<1?1:$from); } //兼容ucs-4編碼 $i=0;//字節(jié)計(jì)數(shù) $from_i=0;//開(kāi)始截取的字節(jié)位置 $from_len=0;//開(kāi)始截取的字符位置 $tag=true;//標(biāo)志$from_len是否已經(jīng)被賦值 for($temp_len=0;($temp_len-$from_len=0&&$byte_code<128){//字符是占用幾個(gè)字節(jié),utf-8是變長(zhǎng)編碼,根據(jù)每個(gè)字符的第一個(gè)字節(jié)可判斷出該字符占幾個(gè)字節(jié) $i++; } if($byte_code>191&&$byte_code<224){ $i+=2; } if($byte_code>223&&$byte_code<240){ $i+=3; } if($byte_code>239&&$byte_code<248){ $i+=4; } if($byte_code>248&&$byte_code<252){ $i+=5; } if($byte_code>252&&$byte_code<255){ $i+=6; } } return iconv('utf-8',$code,substr($str,$from_i,$i-$from_i).$rear); }

總結(jié)

以上是生活随笔為你收集整理的php兼容编码,PHP截取字符串编码(兼容utf-8和gb2312)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。