中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用PHP怎么對UTF-8字符串進行解析

發布時間:2020-12-29 14:48:46 來源:億速云 閱讀:196 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關使用PHP怎么對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怎么對UTF-8字符串進行解析有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

溧水县| 阜新| 枣阳市| 汾阳市| 宿松县| 托克托县| 四子王旗| 宜良县| 鄂托克旗| 德保县| 阜平县| 海宁市| 怀安县| 光泽县| 娄底市| 勐海县| 南投市| 寿阳县| 开鲁县| 阿拉善左旗| 宜兰市| 白银市| 洪泽县| 丹阳市| 克东县| 阿拉善右旗| 保定市| 沈丘县| 安新县| 县级市| 莱州市| 邢台市| 广宁县| 定日县| 祁门县| 湘潭市| 陕西省| 图木舒克市| 安义县| 泸溪县| 左贡县|