- 浏览: 140375 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
<?php function smarty_modifier_truncate_utf8($string, $length, $etc = '..') { $result = ''; $string = html_entity_decode(trim(strip_tags($string)), ENT_QUOTES, 'utf-8'); for($i = 0, $j = 0; $i < strlen($string); $i++) { if($j >= $length) { for($x = 0, $y = 0; $x < strlen($etc); $x++) { if($number = strpos(str_pad(decbin(ord(substr($string, $i, 1))), 8, '0', STR_PAD_LEFT), '0')) { $x += $number - 1; $y++; } else { $y += 0.5; } } $length -= $y; break; } if($number = strpos(str_pad(decbin(ord(substr($string, $i, 1))), 8, '0', STR_PAD_LEFT), '0')) { $i += $number - 1; $j++; } else { $j += 0.5; } } for($i = 0; (($i < strlen($string)) && ($length > 0)); $i++) { if($number = strpos(str_pad(decbin(ord(substr($string, $i, 1))), 8, '0', STR_PAD_LEFT), '0')) { if($length < 1.0) { break; } $result .= substr($string, $i, $number); $length -= 1.0; $i += $number - 1; } else { $result .= substr($string, $i, 1); $length -= 0.5; } } $result = htmlentities($result, ENT_QUOTES, 'utf-8'); if($i < strlen($string)) { $result .= $etc; } return $result; } ?>
发表评论
-
gogs
2017-09-25 19:55 533gogs 安装 1. 下载二进制安装包 2. 新建gi ... -
修改 最大执行时间
2016-12-26 11:05 454//修改最大执行时间 ini_set("max ... -
mac 下安装yaf
2016-12-02 15:16 261.wget http://pecl.php.net/get ... -
laravel 自定义 检查 session 数据是否存在
2016-03-03 18:05 783// vendor/laravel/framework/s ... -
laravel 的redis 删除问题
2015-12-07 20:14 1653团队遇到一个laravel的redis问题:登录退出之后, ... -
正则匹配字符串中的汉字,过滤其他字符
2014-06-13 10:40 0preg_match("/[\x80-\xff]{ ... -
zend framwork - view 模板调用
2012-12-24 12:14 733自定义模板文件 $this->_helper-> ... -
中英文混排的串的占位
2012-12-13 16:30 773一个汉字 两个占位符 $str=‘中文a字1符‘; ... -
zend framework 一些记录
2012-12-11 11:04 6891. zend 调试 sql ... -
ip正则匹配 - php
2012-12-05 16:21 879preg_match_all ("#(\d{1,3} ... -
php-fpm 重启
2012-11-11 21:43 710master进程可以理解以下信号 INT, TERM 立刻终 ... -
php汉字匹配
2012-11-04 15:39 616$name = "/[\x{4e00}- ... -
php的对象clone使用
2011-12-22 12:14 8461。 PHP5中定义了一个__clone ... -
[转]汉字 與 UNICODE 互相轉換
2011-08-22 10:20 1012$str = '我'; /* 將 '我' 轉換成 '25 ... -
pathinfo 模式需要开启 php配置文件一个参数
2011-07-14 14:12 1641pathinfo 模式 需要 php.ini 开启下面这个参数 ... -
日期和unix时间戳的互相转换
2011-02-23 11:15 1561竟然忘记了,记下来,看你还能忘 (完整的 年月日时分秒 ... -
重构-旧表导入新表数据
2010-12-17 11:34 730// 对应字段 key-新,value-旧 $fields ... -
正则过滤替换示例备份
2010-11-12 16:34 784$parr4 = "\x80-\xff&qu ... -
分页函数
2010-11-02 11:18 667////实现分页显示 /* $pageCount 记录总数 ... -
获得url信息
2010-09-22 17:12 7583,http://www.biuuu.com/index.ph ...
相关推荐
通过上述的修改,smarty中英文多编码字符截取乱码问题得到了解决。代码通过智能检测字符串的编码,并且按照字符的实际显示长度来截取文本,从而避免了使用传统truncate方法时会出现的乱码问题。这个解决方案不仅适用...
Smarty是一款广泛使用的PHP模板引擎,它允许开发者将HTML和PHP...通过以上方法,你应该能够成功解决Smarty中`truncate`处理中文字符串时的乱码问题。在实际开发中,对字符编码的理解和正确使用是避免此类问题的关键。
这是因为Smarty中的truncate修饰符主要用于英文字符截取,在处理中文字符时,由于一个中文字符通常占用的字节比英文字符多,所以直接截取会导致显示上出现乱码,比如中英文混合字符串时,截取同样数量的字符,中文...
在Smarty中,可以通过内置的一些功能或者自定义插件来扩展其功能,比如用于文本处理、字符串操作等的函数。在本次的文件内容中,我们看到了如何扩展Smarty模板引擎的功能,通过添加自定义的修饰符(modifier)插件。...
以前从网上找到的一个smarty模板的中文截取函数cn_truncate,原来的实现方法有几个bug,我对它基本上重写了一遍。...最重要的是解决了中英文混合时候的截取计算长度的问题。而且解决了html 转义字符的长度计算问题。
- 如果字符串中英文字符和中文字符都存在,且长度超过了最大长度,则在保留完整中文字符的前提下,截取超出长度的部分,并在最后添加省略号。 - 如果字符串完全由英文字符组成,且长度超过了最大长度,则在保留完整...
而在英文字符中,一个字符通常占用一个字节,所以截取位置和长度的计算和传统字符处理一致。 以上两个函数是ThinkPHP模板中进行字符串截取的核心方法。为了更深入地理解和掌握ThinkPHP模板中的字符串操作技巧,建议...
现推出中英文双语版,并可以完美支持中文繁简转换。 该系统需要PHP5以上版本,并要开启PDO和PDO_MYSQL组件,否则无法使用。 BIWEB V5.8.5启用了新的底层框架,共享内存缓存的应用,是新底层的一大特色,大家可以下载...
实例244 将文本文件中数据存储到数据库中 316 4.5 文件的压缩与解压 318 实例245 PHP中压缩RAR文件 319 实例246 PHP中将上传文件转换成RAR文件 320 实例247 PHP中对RAR文件进行解压 321 实例248 PHP中压缩ZIP文件 ...
实例244 将文本文件中数据存储到数据库中 316 4.5 文件的压缩与解压 318 实例245 PHP中压缩RAR文件 319 实例246 PHP中将上传文件转换成RAR文件 320 实例247 PHP中对RAR文件进行解压 321 实例248 PHP中压缩ZIP文件 ...
21. 字符串截取:`substring(1,3)`从字符串a的第二个字符开始截取,到第三个字符结束,结果为"el"。 22. 广域网缩写:广域网的英文缩写是WAN,LAN是局域网的缩写。 23. C语言输入:在给定的C语言程序中,正确输入1...
- `strtotime` 函数用于将任何英文文本的日期或时间描述转换为Unix时间戳。例如,`strtotime("-1 day")` 返回的是当前时间前一天的Unix时间戳。 - `date` 函数根据给定的格式和时间戳生成日期或时间的字符串。在本...
- truncate标签用于截取长字符串,以便在固定长度的字段中显示。 - strip_tags标签用于去除字符串中的HTML标签,防止HTML注入攻击。 控制标签则用于控制模板的逻辑流程,如条件判断和循环处理: - if, elseif, else...
ECShop利用其高效的模板引擎(在2.15版本之前使用Smarty模板引擎)以及Dreamweaver的模板和库功能,使模板制作和编辑变得更加简单。商家可以轻松地增加或变更支付方式和配送体系,以插件形式实现这些功能。ECShop还...
9. 对于中文字符串截取,可以使用`mb_substr`函数指定编码防止乱码。 10. 版本控制软件:如Git和SVN。 11. 模板引擎:如Smarty。 12. 开发得意之作:请根据个人经验详细阐述。 13. 解决大流量网站访问量问题的...
在PHP中,`date()` 函数用于格式化日期和时间,而 `strtotime()` 函数则用于解析几乎任何英文文本日期/时间描述,并将其转化为Unix时间戳。题目中示例的代码行 `echo date("Y:m:d H:i:s", strtotime("-1 day"));` ...
答:英文字符串可以直接使用strrev函数实现翻转。对于中文或其他文字,需要特别处理,可以通过下面的自定义函数来实现: ```php function reverse($str) { $ret = ""; $len = mb_strlen($str, "GB2312"); for ($i...
- **文档背景**:由于Kohana 3的官方文档主要为英文版本,且中文资源相对较少,这给非英语母语的学习者带来了不小的挑战。因此,翻译一份完整的中文文档显得尤为重要。 - **文档贡献者**:这份非官方中文文档由Yuzek...
- **多语言支持**:支持简体中文、繁体中文及英文等多种语言。 - **源码开放性**:用户可以根据自身需求进行定制和扩展。 #### 二、模板系统介绍 - **概述**:ECShop的模板系统是一种自研的模板控制系统,其功能...