天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

PHP正確解析UTF-8字符串技巧應用

在《學習php&MYSQL之――字符編碼篇(一)》中介紹了Unicode與UTF-8的轉換關系,總結了一個UTF-8的編碼規則,根據這個編碼規則,寫一個UTF-8編碼的解析程序,以下是php的實現:
復制代碼 代碼如下:
<?php
/*
程序功能,$str是中英文混合的UTF-8編碼字符串,
將此字符串根據UTF-8的編碼規則正確的解碼并顯示。
*/


$str = '今天非常Happy,所有決定去KFC吃可樂雞翅!!!';

/*
$str 是待截取的字符串
$len 是截取的字符數
*/
function utf8sub($str,$len) {
if($len <= 0){
return '';
}

$offset = 0; // 截取高位字節時的偏移量
$chars = 0; // 截取到的字符數
$res = ''; // 存放截取的結果字符串

while($chars < $len){
// 先取字符串的第一個字節
// 將它轉為十進制
// 再轉為二進制
$high = ord(substr($str,$offset,1));

// echo '$high='. $high .'<br />';

if($high == null ){ // 如果取出高位為null,證明已經取到末尾,直接break
break;
}
if(($high>>2) === 0x3F){ // 將高位右移2位,和二進制111111比較,相同則取6個字節
// 截取2個字節
$count = 6;
}else if(($high>>3) === 0x1F){ // 將高位右移2位,和二進制11111比較,相同則取5個字節
// 截取3個字節
$count = 5;
}else if(($high>>4) === 0xF){ // 將高位右移2位,和二進制1111比較,相同則取4個字節

// 截取4個字節
$count = 4;
}else if(($high>>5) === 0x7){ // 將高位右移2位,和二進制111比較,相同則取3個字節

// 截取5個字節
$count = 3;
}else if(($high>>6) === 0x3){ // 將高位右移2位,和二進制11比較,相同則取2個字節
// 截取6個字節
$count = 2;
}else if(($high>>7) === 0x0){ // 將高位右移2位,和二進制0比較,相同則取1個字節
$count = 1;
}
// echo '$count='.$count.'<br />';

$res .= substr($str,$offset,$count); // 取出一個字符與$res字符串連接
$chars += 1; // 截取到的字符數+1
$offset += $count; // 截取高位偏移量向后移$count字節
}
return $res;
}

echo utf8sub($str,100);

php技術PHP正確解析UTF-8字符串技巧應用,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 无限好资源免费观看 | 99九九精品国产高清自在线 | 久久精品AV无码亚洲色欲 | 儿子操妈妈 | 国产成人h在线视频 | 国产伦精品一区二区三区免费观看 | 大岛优香久久中文字幕 | 99国产精品成人免费视频 | 亚洲男人天堂2018av | 99re热有精品国产 | 吃奶摸下的羞羞漫画 | 久久免费特黄毛片 | 性欧美xxxxporn | 色琪琪久久热在线 | 亚洲人成网站在线播放 | 好色女博士| 久久久久激情免费观看 | 九九免费精品视频 | 第四色播日韩AV第一页 | 高h辣h双处全是肉一对一 | 日本一二三区在线视频 | 欧美精品成人久久网站 | 亚洲一区二区三区高清网 | 三级黃60分钟 | 动漫美女被羞羞动漫怪物 | 午夜日韩久久影院 | 中文在线中文资源 | 2020年国产理论| 岛国大片在线观看完整版 | 野花日本大全免费高清完整版 | 欧美三级黄色大片 | 伊人国产在线播放 | 神马伦理不卡午夜电影 | 色欲国产麻豆一精品一AV一免费 | 漂亮的保姆5电影免费观看完整版中文 | 扒开美女的内衣亲吻漫画 | 大学生一级毛片免费看 | 最近日本字幕MV免费观看在线 | 97伦理97伦理2018最新 | 亚洲 欧美 国产 综合 播放 | 92国产精品午夜免费福利视频 |