字元擷取 支援UTF8/GBK
function _strcut($string, $length,$dot = '...') {
$string = trim($string);
if($length && strlen($string) > $length) {
//截斷字元
$wordscut = '';
if(strtolower('utf-8') == 'utf-8') {
//utf8編碼
$n = 0;
$tn = 0;
$noc = 0;
while ($n < strlen($string)) {
$t = ord($string[$n]);
if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
$tn = 1;
$n ++;
$noc++;
} elseif(194 <= $t && $t <= 223) {
$tn = 2;
$n += 2;
$noc += 2;
} elseif(224 <= $t && $t < 239) {
$tn = 3;
$n += 3;
$noc += 2;
} elseif(240 <= $t && $t <= 247) {
$tn = 4;
$n += 4;
$noc += 2;
} elseif(248 <= $t && $t <= 251) {
$tn = 5;
$n += 5;
$noc += 2;
} elseif($t == 252 || $t == 253) {
$tn = 6;
$n += 6;
$noc += 2;
} else {
$n++;
}
if ($noc >= $length) {
break;
}
}
if ($noc > $length) {
$n -= $tn;
}
$wordscut = substr($string, 0, $n);
} else {
for($i = 0; $i < $length - 1; $i++) {
if(ord($string[$i]) > 127) {
$wordscut .= $string[$i].$string[$i + 1];
$i++;
} else {
$wordscut .= $string[$i];
}
}
}
$string = $wordscut.$dot;
}
return trim($string);
}
相關推薦
字元擷取 支援UTF8/GBK
function _strcut($string, $length,$dot = '...') { $string = trim($string); if
javascript substring 字元擷取(支援中文)程式碼
substring() 方法用於提取字串中介於兩個指定下標之間的字元,擷取英文字串很簡單直接substring(0,url.length),如果是中文就str.charcodeat(i)>255判斷字元編碼是否是中文漢字編碼了。*/ var url ='http://w
php實現gbk和uft8編碼中英文字元擷取函式的應用
<?php/*utf-8、gb2312都支援的漢字擷取函式cut_str(www.3ppt.com字串, 擷取長度, 開始長度, 編碼);編碼預設為 utf-8開始長度預設為 0*/function cut_str($string, $sublen, $start =
修改apache設定,支援UTF8和GBK
原本將apache預設設定成強制GBK編碼解釋網站,使得後來安裝UTF8的網站程式碼時出現亂碼的情況! 解決方法,修改/etc/httpd/conf/httpd.conf 檔案,將其中AddDefaultCharset行註釋掉(前面加#)。 儲存後重新啟動apache:/usr/sbin/apachectl
utf8 gbk 互轉
bst encoding urn sta function str public log odi public static function utf8_to_gbk($utfstr) { return iconv("utf-8", "gbk//IGNOR
php utf8 gbk 數組 互轉
bsp 直接 each 記錄 sel 工作 都是 cnblogs 裏的 這些都是工作中常用的 前幾年寫過 但沒有記錄的習慣,後邊有要用到麻煩,現在記錄下 以後直接拿來用 數組裏的 utf8_to_gbk 方法 是上一篇寫的 直接調用 public static
javac編譯錯誤: 編碼UTF8/GBK的不可映射字符
源文件 方法 映射 ext ans nbsp 編碼 ava 不可映射字符 Linux下為UTF-8編碼,javac編譯gbk編碼的java文件時,容易出現“錯誤: 編碼UTF8的不可映射字符” 解決方法是添加encoding 參數:javac -e
Linux命令集錦之·字元擷取命令
時間:2018-11-15 記錄:byzqy 字元擷取命令: cut、printf、awk、sed cut $ cut [選項] 檔名 選項: -f 列號:提取第幾列; -d 分隔符:按照指定分隔符分割列; 示例: $ cut -f 2 student.txt # 提取stude
php中文字元擷取無亂碼,php內建函式substr、mb_substr、mb_strcut 比較
mb_strcut(str, start,length) 按位元組來擷取 1個漢字就3個位元組 1個英文就2個位元組 示例:mb_strcut(‘字串php中文字元擷取無亂碼’, 0,10)輸出結果為:“字串”這3個漢字,無亂碼。 mb_s
Mysql支援UTF8-mb4
感謝https://www.2cto.com/database/201405/303550.html分享 以下是原文摘抄 廢話不多說,相信看到這裡的看客已經看過很多配置檔案的設定方法。但是問題還是沒有解決。本文就詳細記錄一下我的解決方法吧。 我的環境:mysql5.6+python2.7
oracle字元擷取函式語法完整版
1)substr函式格式 (俗稱:字元擷取函式) 格式1: substr(string string, int a, intb); 格式2:substr(string string, int a) ; 解釋: 格式1: 1、string 需要擷取的字串
Linux基礎學習之Shell程式設計——字元擷取命令相關——printf、cut、awk、sed
一、字元擷取命令之cut命令 1、字元擷取命令有哪些? grep cut printf(嚴格來說不算) awk sed 命令 2、grep 是在檔案當中提取符合條件的行
C# winForm utf8 gbk 相互轉碼小工具
程式碼大多來源於網路 開發工具:vs2017 專案檔案: 連結:https://pan.baidu.com/s/1OVrAL5DjhDJEJGVAX7m29Q 提取碼:67lj 介面: 程式碼: using System; using System.IO; using System.T
預設支援utf8編碼的mysql docker映象
其他人都是不正確的 使用mysql容器映象可以很快速的執行mysql,免去了傳統的虛擬機器安裝方式的繁瑣配置。但是使用官方的mysql映象,你會遇到中文亂碼的問題,原因是官方映象的字符集預設值不是utf8。這時候你去google,會找到一些文章,如這個哥們的,但是你按照他的做法,還是會亂碼,這時候你
中文字元擷取亂碼問題
又是非Unicode老系統問題,當有中文時,擷取就成問題,原因是中文佔兩位元組,而英文只佔一個位元組,而在老R3系統中C型別只佔一個位元組。思路:將字元統一轉換成Unicode後擷取DATA: s TYPE string.s = '1a的的的b1才才才餓餓餓d1是是是e1哦哦哦'.WRITE:/ s .WRI
在Windows的CMD中如何設定支援UTF8編碼
這個問題很多人開始都會不知道,當然包括曾經的我,當用到的時候,只好求助於偉大的股溝和度娘了。網上有設定的方法,但說明確不夠詳細系統,說設定字型為:Lucida Console。問題是,在預設方式下,只有點陣字型,哪有什麼Lucida Console。所以,在自己成功設定後,拿
中文字元編碼簡介 GB2312/GBK/GB18030/BIG5
2 GBKGB2312-80僅收漢字6763個,這大大少於現有漢字,隨著時間推移及漢字文化的不斷延伸推廣,有些原來很少用的字,現在變成了常用字,例如:朱鎔基的“鎔”字,未收入GB2312-80,現在大陸的報業出刊只得使用(金+容)、(金容)、(左金右容)等來表示,形式不一而同,這使得表示、儲存、輸入、處理都非
[Shell]字元擷取命令:cut, printf, awk, sed
【cut命令】 cut [選項] 檔案 -f 列號 ( --field 提取第幾列 ) -d 分隔符 ( --delimiter 按照指定分隔符分割列 ) vi user.txt ( 行間分隔符為製表
thinkphp字元擷取函式msubstr()
ThinkPHP有一個內建字元擷取函式msubstr()如下: msubstr($str, $start=0, $length, $charset=”utf-8″, $suffix=true) $str:要擷取的字串 $start=0:開始位置,預設從0開始 $len
php字元擷取之類的
一、中文擷取:mb_substr()mb_substr( $str, $start, $length, $encoding ) $str,需要截斷的字串 $start,截斷開始處,起始處為0 $len