您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程
phpcms-v9自带的字符串截取函数的方法
雷友水2025-06-09phpcms教程已有人查阅
导读1.phpcms-v9自带的字符串截取函数在phpcms/libs/functions/global.func.php文件中:不管是字母还是中文,都截取制定的长度
1.phpcms-v9自带的字符串截取函数在phpcms/libs/functions/global.func.php文件中:
/**
* 字符截取 支持UTF8/GBK
* @param $string
* @param $length
* @param $dot
*/
function str_cut($string, $length, $dot = '...') {
$strlen = strlen($string);
if($strlen <= $length) return $string;
$string = str_replace(array(' ',' ', '&', '"', ''', '“', '”', '-', '<', '>', '·', '…'), array('∵',' ', '&', '"', "'", '“', '”', '-', '<', '>', '·', '…'), $string);
$strcut = '';
if(strtolower(CHARSET) == 'utf-8') {
$length = intval($length-strlen($dot)-$length/3);
$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);
$strcut = str_replace(array('∵', '&', '"', "'", '“', '”', '-', '<', '>', '·', '…'), array(' ', '&', '"', ''', '“', '”', '-', '<', '>', '·', '…'), $strcut);
} else {
$dotlen = strlen($dot);
$maxi = $length - $dotlen - 1;
$current_str = '';
$search_arr = array('&',' ', '"', "'", '“', '”', '-', '<', '>', '·', '…','∵');
$replace_arr = array('&',' ', '"', ''', '“', '”', '-', '<', '>', '·', '…',' ');
$search_flip = array_flip($search_arr);
for ($i = 0; $i < $maxi; $i++) {
$current_str = ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
if (in_array($current_str, $search_arr)) {
$key = $search_flip[$current_str];
$current_str = str_replace($search_arr[$key], $replace_arr[$key], $current_str);
}
$strcut .= $current_str;
}
}
return $strcut.$dot;
}
//weiyanhui自己添加,字符串截取函数,建议使用自己写的字符串截取函数,需要在php.ini中开启php_mbstring.dll扩展
function str_cut1($string, $length, $dot = '...') {
return mb_substr($string,0,$length,'utf-8').$dot;
}
echo str_cut1("abcdefg",3,"...");//结果:abc...
echo str_cut1("我们都是我国人",3,"...");//结果:我们都...
不管是字母还是中文,都截取制定的长度
本文标签:
很赞哦! ()
相关教程
- PHP join()函数:数组元素连接成字符串教程
- PHP implode()函数:数组元素连接成字符串教程
- PHP htmlspecialchars_decode()函数:HTML实体还原字符教程
- PHP htmlspecialchars()函数:特殊字符转HTML实体教程
- PHP html_entity_decode()函数:HTML实体还原字符教程
- PHP htmlentities()函数:字符转HTML实体教程
- PHP hex2bin()十六进制转ASCII字符函数详解
- PHP hebrev()函数教程:希伯来文视觉文本转换、maxcharline参数与经验
- PHP get_html_translation_table()函数详解:翻译表、编码标志与避坑指南
- PHP fprintf()函数:格式化字符串写入流指南
- PHP explode()函数:字符串分割与数组转换
- PHP echo()函数:字符串输出机制与工程实践
图文教程
phpcms文件上传失败的解决方法
在php.ini配置文件中,upload_max_filesize、post_max_size这些参数值如果设置不当,可能限制了你上传文件的大小上限,从而导致上传失败返回异常。
phpcms移植添加相关文章功能的方法
添加相关文章功能相当有用,移植一个过来基本上可以实现比较复杂的页面内包含分类功能,做二次开发时可以省下不少力气。
phpcms提示验证码错误的解决方法
phpcms后台登陆提示验证码错误的解决办法1、V9的验证码在生成后,会把验证码的数字存入Session当中。2、V9在默认的情况下,Session是存放在数据库当中的。其在数据库中的表现如下:
phpcmsv9开发的微信公众号平台管理模块
在公司为一家酒店联盟开发了一个微信公众号平台,期间因为要赶做其它项目,停停顿顿,整整 改改估计用在开发微信模块的时间大概一个多月,前期的开发基本上已经完成
相关源码
-
自适应手机版五金机械阀门设备通用行业网站模板该PbootCMS内核开发的网站模板适用于阀门设备、五金机械类企业,通过更换文字图片也可快速适配其他工业领域。采用响应式设计,确保PC端与手机端数据同步,操作便捷,并附带测试数据。查看源码 -
(自适应)蓝色五金制品配件管件pbootcms网站源码下载基于PbootCMS内核开发的五金行业专用模板,采用响应式设计架构,确保产品展示在各类移动设备上的呈现。通过模块化布局与工业风视觉设计,帮助五金企业高效展示产品规格、应用场景及技术支持,建立专业可靠的行业形象。查看源码 -
自适应车行汽车租赁二手车行业企业网站模板为汽车租赁与二手车交易场景深度优化,采用PbootCMS内核开发,聚焦车辆展示、租赁流程与服务介绍三大核心模块。响应式布局确保PC与移动端数据实时同步,后台一键管理车辆信息查看源码 -
响应式粉色美容整形化妆品pbootcms网站模板开源源码该网站模板为美容整形、化妆品企业设计,采用响应式布局确保在手机、平板及PC端自动适配显示效果。基于PbootCMS内核开发,支持一键替换图文内容快速转换至其他行业应用。查看源码 -
帝国cms7.5品牌连锁店招商加盟商机网站模版源码本模板为招商加盟、创业投资、品牌连锁等商业领域设计,采用帝国CMS7.5内核构建,整体风格简洁大气,突出商业信任感与专业度,适合各类招商加盟项目展示、品牌连锁店宣传等商业应用场景。查看源码 -
自适应LED照明外贸灯具灯泡灯具英文网站模板该外贸灯具网站模板专为LED照明、灯具出口企业定制,采用PbootCMS内核开发,提供高效建站方案。通过响应式设计和SEO优化能力,帮助企业低成本构建专业外贸展示平台。查看源码
| 分享笔记 (共有 篇笔记) |
