实用技巧:PHP截取中文字符串的问题
技巧|问题|中文|字符串
以下代码试用于GB2312编码,截取中文字符串是PHP中一个头疼的问题,解决方法是根据值是否大于等于128来判断是否是双字节字符,以避免出现乱码的情况。但中英文混合、特殊符号等问题总是存在,现在写一个比较全面的,仅供参考:
程序说明:
1. len 参数以中文字符为标准,1len等于2个英文字符,为了形式上好看些
2. 如果将magic参数设为false,则中文和英文同等看待,取绝对的字符数
3. 特别适用于用htmlspecialchars()进行过编码的字符串
4. 能正确处理GB2312中实体字符模式()
程序代码:
<ccid_code>function FSubstr($title,$start,$len="",$magic=true) {/** * powered by Smartpig * mailto:d.einstein@263.net */ $length = 0;if($len == "") $len = strlen($title);//判断起始为不正确位置if($start > 0){ $cnum = 0; for($i=0;$i= 128) $cnum ++; } if($cnum%2 != 0) $start--; unset($cnum);}if(strlen($title)?) if(substr($title,$i,4)="=" ?) ?&?) if($cur="=" $cur="substr($title,$i,1);">=128) { $cstep = 2; $length += 2; $i += 1; $realnum ++; if($magic) { $blen ++; $ctype = 1; } }else{ $cstep = 1; $length +=1; $realnum ++; if($magic) { $alen++; } } } if($magic) { if(($blen*2+$alen) == ($len*2)) break; if(($blen*2+$alen) == ($len*2+1)) { if($ctype == 1) { $length -= $cstep; break; }else{ break; } } }else{ if($realnum == $len) break; }}unset($cur);unset($alen);unset($blen);unset($realnum);unset($ctype);unset($cstep);return substr($title,$start,$length);}</ccid_code>

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

docker start起不来的解决办法:1、检查运行状态,然后通过“echo 3 > /proc/sys/vm/drop_caches”命令释放被占用的内存;2、通过“$netstat -nltp|grep ...”命令检查端口是否已经被占用,如果上线后发现占有,则改为可用端口再重启即可。

title是定义网页标题的意思,位于标签内,并且是在浏览器的标题栏中显示的文本,title对于网页的搜索引擎优化和用户体验都非常重要。在编写HTML网页时,应该注意使用相关的关键词和吸引人的描述来定义title元素,以便吸引更多的用户点击和浏览。

HTML中的title显示的是网页标题标签,可以让浏览者知道当前页面的主要是讲什么的,所以每个网页都应该有一个单独的title。

node start报错的解决办法:1、直接在终端执行“node xx.js”;2、添加start启动项“ "scripts": {"test": "echo \"Error: no test specified\" && exit 1","start":"node service.js"}”;3、重新执行“npm start”即可。

start方法和run方法$start()$方法用来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到$cpu$时间片,就开始执行$run()$方法。而直接调用$run()$方法,仅仅只是调用了一个类里的方法,其本质上还是在当前线程中执行的,因此只有使用$start()$方法来调用$run()$方法才能实现真正的多线程。示例代码@Slf4j(topic="c.Test4")publicclassTest4{publicstaticvoidmain(Strin

PHP是一种流行的服务器端编程语言,它提供了许多有用的功能,其中之一就是操作数组。在使用PHP数组时,有时候需要删除元素,这时候就可以使用unset()函数。unset()函数是PHP中用于删除变量的函数,可以用来删除数组中的元素。它的语法如下:unset(array$array[,mixed$key1[,mixed$key2[,mixed

这篇文章将为大家详细讲解有关PHP关闭进程文件指针,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。关闭PHP进程文件指针简介关闭php进程文件指针对于释放系统资源和避免内存泄漏至关重要。本文将介绍在PHP中关闭文件指针的各种方法及其背后的原理。关闭文件指针的方法1.fclose()函数fclose()函数是最直接的方式来关闭文件指针。它接受一个文件指针作为参数,并释放与该指针关联的系统资源。$file=fopen("test.txt","r");fclose($

session_start()函数是PHP中开启会话的的函数之一。会话是Web开发中很常见的一种技术,而会话的基础就是在用户访问网站时给用户分配一个唯一的会话ID,并在后续的访问中使用这个会话ID来识别用户。会话可用于保存用户的登录状态、购物车内容和用户的其他信息,同时也可用于在网站中实现一些功能的权限控制。在PHP中开启会话的方式非常简单,只需使用sess
