什么是ThinkSNS+ ThinkSNS(简称TS),一款全平台综合性社交系统,目前最新版本为ThinkSNS+.ThinkSNS V4 ThinkSNS[简]. 今天我们来聊一下可能很多人都会头疼的东西:显示长度. 需求是这样的,在字符的显示上,两个英文单词才占一个中文或者其他语言的显示长度.如下: ab 哈 ? 上面排的是两个英文字母,一个汉字,一个Emoji.你会发现,在显示上占的宽度是一致的.一些设计上为了好看也要求有这样的处理. 例如,我们的用户名需求是最多12个非单字节字符或者24…
今天我们来聊一下可能很多人都会头疼的东西:显示长度. 需求是这样的,在字符的显示上,两个英文单词才占一个中文或者其他语言的显示长度.如下: 上面排的是两个英文字母,一个汉字,一个Emoji.你会发现,在显示上占的宽度是一致的.一些设计上为了好看也要求有这样的处理. 例如,我们的用户名需求是最多12个非单字节字符或者24个单字节字符的需求也可以混合排的需求,我们写后端不得不处理这样的验证了. 需求规则是 /^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/ 在T…
ThinkSNS+后端框架使用laravel,每周和 laravel master 保持同步,而后台和 html 5 则采用 vue 开发.语言特性方面,采用 php 7 的严格模式. 言归正传,之所以写继篇,其实是来检讨的,上一次发表了<ThinkSNS+ 如何计算字符显示长度>后,有网友几经测试后告知str_word_count 有问题. 根据ThinkSNS+ 的进度安排,最近在研发支付功能,所以只能使用周末的时间做了一个兼容性更好的计算方法. 需求 重新说下需求:在我天朝 PM 经常会…
PHP计算字符串长度,包括计算英文.GBK.UTF-8多种字符集下PHP如何计算字符串长度. 英文字符串长度,strlen()是PHP自带的计算英文字符串的函数. GBK字符串长度 中文字符计算为2个字符,英文字符计算为1个,可以统计中文字符串长度的函数. function abslength($str) { $len = strlen($str); $i = 0; while ($i < $len) { if (preg_match("/^[" . chr(0xa1) . &q…
1.js是用unicode算长度的,比如单字节的算1,中文也算1,但是正常我们想让两个单字节算1,如何计算这个长度 第一种解决方案,用正则,如下 /[\u0x00-\u0xff]/,天真的想着,这样就可以匹配所有unicode在这个之间的了,但是,这个正则不匹配标点符号,比如空格,逗号,不知道为什么,所以,只能去遍历charCodeAt了 代码如下: function getStringWidth(s){ var length = 0; for(var i=0;i<s.length;i++) {…
1. 问题描述 在同步数据时常常会发现一个错误:将截断字符串或二进制数据. 2. 问题原因 这个问题出现的原因是:要插入的数值字段的长度超出了数据库中字段的长度.比如:插入的字符串字节长度是40,数据库中字段长度设置为了varchar(36)就会报此错误. 3.问题扩展 a. 如何计算字符串长度和字节长度,既:datalength和len区别. len:返回字符串的长度 datalength:返回字符串的字节长度 select len(convert(varchar(50),N'狮lion'))…
摘要 超文本传输协议(HTTP)是一种为分布式,合作式,多媒体信息系统服务,面向应用层的协议.它是一种通用的,不分状态(stateless)的协议,除了诸如名称服务和分布对象管理系统之类的超文本用途外,还可以通过扩展它的请求方式,错误代码和报头来完成许多任务.HTTP的一个特点是数据表示方式的典型性和可协商性允许独立于传输数据而建立系统.在1990年WWW全球信息刚刚起步的时候HTTP就得到了应用.HTTP的第一个版本叫做HTTP/0.9,是一种为互联网原始数据传输服务的简单协议.由RFC 19…
http://blog.csdn.net/russell_tao/article/details/7103012 内核在微观上,把CPU的运行时间分成许多分,然后安排给各个进程轮流运行,造成宏观上所有的进程仿佛同时在执行.双核CPU,实际上最多只能有两个进程在同时运行,大家在top.vmstat命令里看到的正在运行的进程,并不是真的在占有着CPU哈. 所以,一些设计良好的高性能进程,比如nginx,都是实际上有几颗CPU,就配几个工作进程,道理就在这.比如你的服务器有8颗CPU,那么nginx…
当我开始学习编程的时候(1967年),我可以在 FORTRAN 和(传说中的)Algol 之间选择,不过没有任何人了解 Algol,所以我选择了 FORTRAN. 在我最早学习编程的时候,我的编程周期基本上是这样的: 第一周 在纸上的表格里编写代码,然后送到计算机中心将其转换为打孔卡: 第二周 复查打孔卡,如果没问题就放到设备上执行: 第三周 得到结果 编程的一周,事实上是花费了我的三周时间:当编译器遇到第一个语法错误的时,它会终止运行——这会将你带回第一周.所以,如果在你的程序中有十个错误,它…
---------------------------------------------------------           PHP知识大全 --------------------------------------------------------- 1. 变量如何定义?如何检查变量是否定义?如何删除一个变量?怎样检测变量是否设置? $定义   isset()// 检测变量是否设置 defined()// 检测常量是否设置 unset()//销毁指定的变量 empty()// 检…