php源碼分析之DZX1.5字符串截?cái)嗪瘮?shù)cutstr用法
本文實(shí)例講述了php源碼分析之DZX1.5字符串截?cái)嗪瘮?shù)cutstr用法。分享給大家供大家參考。具體分析如下:
<?php
/**
* 函數(shù)來源DZX1.5,文件所在 /source/function/function_core.php
*/
define('CHARSET','UTF-8');
function cutstr($string, $length, $dot="...") {
if(strlen($string)<=$length) {
return $string;
}
if(strtolower(CHARSET) == "utf-8") {
$n = $tn = $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;
}
$strcut = substr($string, 0, $n);
} else {
for($i = 0; $i < $length; $i++) {
$strcut .= ord($string[$i])>127 ? $string[$i].$string[++$i] : $string[$i];
}
}
$pos = strrpos($strcut, chr(1));
if($pos !== false) {
$strcut = substr($strcut,0,$pos);
}
return $strcut.$dot;
}
$string = '測試數(shù)據(jù)庫ablci102020@(#)!)!測試勞動(dòng)力ddk';
echo cutstr($string,15);
/*End of php*/
運(yùn)行結(jié)果如下:
測試數(shù)據(jù)庫ablci1020...
希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。
相關(guān)文章
解析關(guān)于wamp啟動(dòng)是80端口被占用的問題
本篇文章是對(duì)關(guān)于wamp啟動(dòng)是80端口被占用的問題(win7系統(tǒng)下WAMP 80端口被Microsoft-HTTPAPI/2.0占用的解決辦法)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
PHP CURL post數(shù)據(jù)報(bào)錯(cuò) failed creating formpost data
我們有時(shí)候用curl上傳文件遇到failed creating formpost data的錯(cuò)誤,那具體是如何產(chǎn)生,又如何進(jìn)行處理解決呢,下面我們就來探討下2016-10-10
PHP二維數(shù)組排序簡單實(shí)現(xiàn)方法
這篇文章主要介紹了PHP二維數(shù)組排序簡單實(shí)現(xiàn)方法,涉及PHP針對(duì)數(shù)組的遍歷與排序操作常用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-02-02
php實(shí)現(xiàn)在新浪云中使用imagick生成縮略圖并上傳的方法
這篇文章主要介紹了php實(shí)現(xiàn)在新浪云中使用imagick生成縮略圖并上傳的方法,涉及新浪云SaeStorage類的相關(guān)操作技巧,需要的朋友可以參考下2016-09-09
PHP實(shí)現(xiàn)雙鏈表刪除與插入節(jié)點(diǎn)的方法示例
這篇文章主要介紹了PHP實(shí)現(xiàn)雙鏈表刪除與插入節(jié)點(diǎn)的方法,結(jié)合實(shí)例形式分析了PHP雙鏈表的定義與節(jié)點(diǎn)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-11-11
PHP設(shè)計(jì)模式之狀態(tài)模式定義與用法詳解
這篇文章主要介紹了PHP設(shè)計(jì)模式之狀態(tài)模式定義與用法,結(jié)合實(shí)例形式分析了php狀態(tài)模式的概念、原理、定義、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2018-04-04
PHP+Apache環(huán)境中如何隱藏Apache版本
以PHP+Apache服務(wù)器環(huán)境為例,給大家講解如何能夠隱藏Apache的版本號(hào)以及具體做法。2017-11-11

