截取函数,中文一个,英文两个算一个
共享一个今天写的截取字符串函数,跟官方的不一样,用了你就知道/**<br>
* 截取函数,中文一个,英文两个算一个<br>
*/<br>
function mbsubstr($str, $start=0, $length, $suffix=true, $charset="utf-8") {<br>
$re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";<br>
$re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";<br>
$re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";<br>
$re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";<br>
preg_match_all($re[$charset], $str, $match);<br>
<br>
$strArr = $match[0];<br>
$str = array_values(tempStrArr($strArr));<br>
$strArrCount = count($str);<br>
if($strArrCount == $length+1){<br>
$length += 1;<br>
}<br>
<br>
$slice = implode('',array_slice($str,$start,$length));<br>
if($strArrCount > $length){<br>
return $suffix ? $slice.'...' : $slice;<br>
}else{<br>
return $slice;<br>
}<br>
}<br>
function tempStrArr($strArr){<br>
$e = range('a','z');<br>
$i = count($strArr);<br>
foreach($strArr as $k=>$v){<br>
if(in_array(strtolower($v), $e)){<br>
if(in_array(strtolower($strArr[$k+1]), $e)){<br>
$strArr[$k] = $v.$strArr[$k+1];<br>
unset($strArr[$k+1]);<br>
break;<br>
}<br>
}elseif($v > 0 && $v 0 && $strArr[$k+1]
$strArr[$k] = $v.$strArr[$k+1];<br>
unset($strArr[$k+1]);<br>
break;<br>
}<br>
$i--;<br>
}<br>
if($i > 0){<br>
$strArr = tempStrArr($strArr);<br>
}<br>
<br>
return $strArr;<br>
}
共享这个代码。我总觉得哪里不对劲,有更好的思路的大神求思路
更多函数参见 http://chajiandaquan.com/function.html
AD:真正免费,域名+虚机+企业邮箱=0元

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SublimeText3 Linux新版
SublimeText3 Linux最新版

記事本++7.3.1
好用且免費的程式碼編輯器