文档章节

php截取UTF-8字符

zy643208
 zy643208
发布于 2014/11/17 10:59
字数 95
阅读 8
收藏 0

<?php


class String

{

    public static function truncate_utf8_string($string, $length, $etc = '...')

    {

        $result = '';

        $string = html_entity_decode(trim(strip_tags($string)), ENT_QUOTES, 'UTF-8');

        $strlen = strlen($string);

        for ($i = 0; (($i < $strlen) && ($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 = htmlspecialchars($result, ENT_QUOTES, 'UTF-8');

        if ($i < $strlen) {

            $result .= $etc;

        }

        return $result;

    }

}

本文转载自:http://www.yiichina.com/code/28

共有 人打赏支持
zy643208
粉丝 2
博文 75
码字总数 9412
作品 0
成都
程序员
私信 提问
PHP substr()截取字符串时,中文出现乱码的问题解决

在PHP程序开发中,经常会执行字符串的截取操作,比如输出信息列表时,标题不宜过长,打印文章摘要时,也要执行一系列的字符串截取操作。遇到这些需求时,我们经常会想到使用substr()方法来实...

bengozhong
2016/10/10
13
0
mb_substr()----------php

PHP substr()函数可以分割文字,但要分割的文字如果包括中文字符往往会遇到问题,这时可以用mbsubstr()/mbstrcut这个函数,mbsubstr() /mbstrcut的用法与substr()相似,只是在mbsubstr()/mb...

freedonn
2014/09/12
0
0
PHP中substr() mb_substr() mb_struct()的区别和用法及Smar...

PHP substr(),mbsubstr()及mbstrcut的区别和用法及Smarty模板中的truncate调节器浅谈 PHP substr() 函数可以 分割文字,但要分割的文字如果包括中文字符往往会遇到问题,这时可以用mbsubstr(...

sco
2012/10/07
0
0
php中计算中文字符串长度、截取中文字符串

在做PHP开发的时候,由于我国的语言环境问题,所以我们常常需要对中文进行处理。在PHP中,我们都知道有专门的mbsubstr和mbstrlen函数,可以对中文进行截取和计算长度,但是,由于这些函数并非...

建华1
2014/01/16
0
0
php中截取中文字符会出现乱码的问题

php中内置函数substr()可以对指定字符串进行截取,不过,它只对全英文字符串的截取是比较适合的。如果字符串中出现了中文,就有可能导致截取后出现乱码的问题,甚至在一些场景中如json编码的...

码上有春天
2015/04/09
69
0

没有更多内容

加载失败,请刷新页面

加载更多

JAVA-四元数类

public class Quaternion { private final double x0, x1, x2, x3; // 四元数构造函数 public Quaternion(double x0, double x1, double x2, double x3) { this.x0 = ......

Pulsar-V
7分钟前
0
0
Xshell利用Xftp传输文件,使用pure-ftpd搭建ftp服务

Xftp传输文件 如果已经通过Xshell登录到服务器,此时可以使用快捷键ctrl+alt+f 打开Xftp并展示Xshell当前的目录,之后直接拖拽传输文件即可。 pure-ftpd搭建ftp服务 pure-ftpd要比vsftp简单,...

野雪球
9分钟前
0
0
要混乱还是要混蛋——《西欧中世纪》读后感2900字

要混乱还是要混蛋——《西欧中世纪》读后感2900字: 这本书读了多久?好像有一年了,我翻了之前做摘抄的记录,最早一条是今年年初写的。这本书有多少页? 580多页,还不算厚厚一叠欧洲皇室谱...

原创小博客
14分钟前
0
0
Confluence 6 文档主题合并问答

在 Confluence 官方 前期发布的消息 中,文档主题在 Confluence 6.0 及其后续版本中已经不可用。我们知道你可能对这个有很多好好奇的问题,因此我们在这里设置了一个问答用于帮助你将这个主题...

honeymose
42分钟前
2
0
java框架学习日志-2

上篇文章(java框架学习日志-1)虽然跟着写了例子,也理解为什么这么写,但是有个疑问,为什么叫控制反转?控制的是什么?反转又是什么? 控制其实就是控制对象的创建。 反转与正转对应,正转...

白话
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部