首页 > 其他分享 >常用的两种UTF8中文截取函数

常用的两种UTF8中文截取函数

时间:2024-01-24 16:06:14浏览次数:36  
标签:中文 UTF8 截取 param width 宽度 str x3

/**

  • 截取UTF8编码字符串从首字节开始指定宽度(非长度), 适用于字符串长度有限的如新闻标题的等宽度截取
  • 中英文混排情况较理想. 全中文与全英文截取后对比显示宽度差异最大,且截取宽度远大越明显.
  • @param string $str UTF-8 encoding
  • @param int[option] $width 截取宽度
  • @param string[option] $end 被截取后追加的尾字符
  • @param float[option] $x3

  • 3字节(中文)字符相当于希腊字母宽度的系数coefficient(小数)
  • 中文通常固定用宋体,根据ascii字符字体宽度设定,不同浏览器可能会有不同显示效果 */ function u8_title_substr($str, $width = 0, $end = '...', $x3 = 0) { global 常用的两种UTF8中文截取函数_取宽度width <= 0 || 常用的两种UTF8中文截取函数_字符串_02str)) { return 常用的两种UTF8中文截取函数_取宽度_03e = ''; 常用的两种UTF8中文截取函数_ci_04str); 常用的两种UTF8中文截取函数_字符串_05arr); 常用的两种UTF8中文截取函数_字符串_06width *= 10; // 不同字节编码字符宽度系数 常用的两种UTF8中文截取函数_ci_07x2 = 16; $x3 = 常用的两种UTF8中文截取函数_取宽度_08CFG['cf3']) ? $CFG['cf3']*10 : $x3 = 21 ) : 常用的两种UTF8中文截取函数_ci_09x3 = $x3===0 ? ( $CFG['cf3'] > 0 ? $CFG['cf3']*10 : $x3 = 21 ) : 常用的两种UTF8中文截取函数_取宽度_10x4 = $x3;
    // http://zh.wikipedia.org/zh-cn/UTF8 for ($i = 0; $i < $len; 常用的两种UTF8中文截取函数_ci_11w >= $width) { $e = $end; break; } 常用的两种UTF8中文截取函数_ci_12arr[常用的两种UTF8中文截取函数_取宽度_13c <= 127) { $w += 常用的两种UTF8中文截取函数_取宽度_14c >= 192 && $c <= 223) { // 2字节头 $w += $x2; 常用的两种UTF8中文截取函数_取宽度_15c >= 224 && $c <= 239) { // 3字节头 $w += $x3; 常用的两种UTF8中文截取函数_ci_16c >= 240 && $c <= 247) { // 4字节头 $w += $x4; $i += 3; } }
    return @implode('', array_slice($arr, 0, $i) ). $e; }

/******************************************************************

  • PHP截取UTF-8字符串,解决半字符问题。
  • 英文、数字(半角)为1字节(8位),中文(全角)为3字节
  • @return 取出的字符串, 当$len小于等于0时, 会返回整个字符串
  • @param $str 源字符串
  • 常用的两种UTF8中文截取函数_ci_17str,常用的两种UTF8中文截取函数_ci_18i=0;常用的两种UTF8中文截取函数_取宽度_19len;$i++) { 常用的两种UTF8中文截取函数_ci_20str,0,1); if(ord($temp_str) > 127) { 常用的两种UTF8中文截取函数_字符串_21i<$len) { 常用的两种UTF8中文截取函数_取宽度_22str,0,3); 常用的两种UTF8中文截取函数_取宽度_23str,3); } } else { 常用的两种UTF8中文截取函数_取宽度_22str,0,1); 常用的两种UTF8中文截取函数_取宽度_23str,1); } } return join($new_str); }

标签:中文,UTF8,截取,param,width,宽度,str,x3
From: https://blog.51cto.com/u_16436065/9398125

相关文章

  • js如何在一个数组内找到特定值,再在这个特定值前后截取十个数得到新数组
     //剪切原原始曲线getSplitTend(){consttimeCompare=[]this.trendOption.series[0].data.forEach(item=>{timeCompare.push(item[0])})//console.log('timeCompare',timeCompare)constindex=timeCompare......
  • 中文电码在历史关键时刻的作用
     1.中文电码:一段被遗忘的历史中文电码是一种将汉字转换为电信号编码的方式,它的历史可以追溯到19世纪末。在当时,电报技术传入中国,为了实现汉字的电子传输,我国学者研究了一种将汉字转换为电码的方法。这种方法通过对汉字进行编码,将其转换为电信号进行传输,从而实现了汉字的远程......
  • python截取视频中的一段成gif
    frommoviepy.editorimportVideoFileClipvideo=VideoFileClip('xxxx.mp4')#剪辑从第1秒到第6秒的视频片段clipped_video=video.subclip(0,6)#保存成gifclipped_video.write_gif('output.gif')#加载GIF文件clip=VideoFileClip('output.gif')#......
  • 批处理命令set截取字符详解
    在批处理中,set的功能有点繁杂:设置变量、显示环境变量的名及值、做算术运算、等待用户的输入、字符串截取、替换字符串,是我们常用的命令之一。在字符串截取方面,新手因为没能注意到偏移量的问题,很容易提取到错误的字符串,因此,特开此帖,详细解释set截取字符的用法。......
  • 电报设置中文的方法,适合电脑和手机版本
    电报telegram软件界面如何设置成的中文语言,原理讲解操作简单链接地址:https://t.me/setlanguage/classic-zh-cn点击即可设置......
  • 中文技术文档的写作规范-阮一峰
    注:本文主要是方便网络不好的用户在线查看,原文请访问document-style-guide。目录简介目录License标题层级原则文本字间距句子写作风格英文处理段落原则引用数值半角数字千分号货币数值范围变化程度的表示法标点符号原则句号逗号顿号分号引号括号冒号省略号感叹号破折号连接号文档......
  • Windows 10 version 22H2 (updated Jan 2024) 中文版、英文版下载
    Windows10version22H2(updatedJan2024)中文版、英文版下载Windows1022H2企业版arm64x64作者主页:sysin.orgWindows10更新历史记录Windows10,version22H2,alleditions发布日期:2022/10/18版本:Windows10,版本22H2Windows10版本信息2022/10/19从W......
  • Windows 11 version 23H2 中文版、英文版 (x64、ARM64) 下载 (updated Jan 2024)
    Windows11version23H2中文版、英文版(x64、ARM64)下载(updatedJan2024)Windows11,version23H2,2024年1月更新作者主页:sysin.orgWindows11目前版本所有的日期都按照ISO8601格式列出:YYYY-MM-DD)服务频道版本服务选项上市日期最后修订日期最新版本......
  • Windows Server 2022 中文版、英文版下载 (updated Jan 2024)
    WindowsServer2022中文版、英文版下载(updatedJan2024)WindowsServer2022正式版,2024年1月更新请访问原文链接:https://sysin.org/blog/windows-server-2022/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org此次发布更新了什么?答:版本号,当然还有……2021.09......
  • Windows Server 2022 中文版、英文版下载 (updated Jan 2024)
    WindowsServer2022中文版、英文版下载(updatedJan2024)WindowsServer2022正式版,2024年1月更新请访问原文链接:https://sysin.org/blog/windows-server-2022/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org此次发布更新了什么?答:版本号,当然还有……2021.0......