`

String Cutting Helper in Zend Framework

    博客分类:
  • Zend
 
阅读更多

http://www.kimbs.cn/2011/08/string-cutting-helper-in-zend-framework/#codesyntax_1

 

/**
 * Takes a string and optionally a maximum length and 'cut' the string to match that length
 * based on words and not on characters.
 *
 * @author kim
 */
class App_View_Helper_Cut extends Zend_View_Helper_Abstract
{
    /**
     * do string cut
     *
     * @param string  $pStr - The string to be cut
     * @param intefer $pMaxLen - The maximum length cut
     * @return string
     */
    public function cut($pStr, $pMaxLen = 40)
    {
        // filter all the tags
        $filter = new Zend_Filter_StripTags();
        $pStr = trim($filter->filter($pStr));
        $returnStr = $this->cutstr($pStr, $pMaxLen, '...');
        return $returnStr;
    }

    /**
     * cut string, utf8 by default
     *
     * @param $string - string to cut
     * @param $length - Max length to cut
     * @param $dot - the tail added to the sub-string
     * @param $encoding - the encoding of string
     * @return string
     */
    public function cutstr($string, $length, $dot = '', $encoding = 'utf8')
    {
        if (strlen($string) <= $length) {
            return $string;
        }

        $strcut = '';
        if (strtolower($encoding) == 'utf8') {
            $n = $tn = $noc = 0;
            while ($n < strlen($string)) {
                $t = ord($string[$n]);
                if ($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
                    $tn = 1; $n++; $noc++;
                } elseif(194 <= $t && $t <= 223) {
                    $tn = 2; $n += 2; $noc += 2;
                } elseif(224 <= $t && $t < 239) {
                    $tn = 3; $n += 3; $noc += 2;
                } elseif(240 <= $t && $t <= 247) {
                    $tn = 4; $n += 4; $noc += 2;
                } elseif(248 <= $t && $t <= 251) {
                    $tn = 5; $n += 5; $noc += 2;
                } elseif($t == 252 || $t == 253) {
                    $tn = 6; $n += 6; $noc += 2;
                } else {
                    $n++;
                }
                if ($noc >= $length) {
                    break;
                }
            }
            if ($noc > $length) {
                $n -= $tn;
            }
            $strcut = substr($string, 0, $n);
        } else {
            for($i = 0; $i < $length - strlen($dot) - 1; $i++) {
                if (ord($string[$i]) > 127) {
                    $strcut .= $string[$i] . $string[++$i];
                } else {
                    $strcut .= $string[$i];
                }
            }
        }

        return $strcut . $dot;
    }
}

 

分享到:
评论

相关推荐

    ZendFramework-1.11.11minimal

    例如,数据库访问层(Zend_Db)、表单处理(Zend_Form)和视图助手(Zend_View_Helper)等。 2. **依赖注入**:框架采用依赖注入容器(Dependency Injection Container,DIC),允许开发者灵活地控制对象之间的依赖...

    诗意的边缘:PHP顶级框架Zend Framework开发实战-代码

    ** Zend Framework 框架详解** Zend Framework 是一个开源、基于组件的 PHP 开发框架,专为构建可扩展且高性能的 Web 应用程序而设计。它的设计模式遵循了 Model-View-Controller(MVC)架构,使得开发者可以更加...

    ZendFramework-1.7.2帮助文档

    **Zend Framework 1.7.2 帮助文档** Zend Framework 是一个开源、全面的 PHP 框架,用于构建可扩展且高效的 Web 应用程序。版本 1.7.2 是该框架的一个重要里程碑,包含了丰富的特性和改进。这个帮助文档以 HTML ...

    Zend Framework 框架开发入门教程

    ### Zend Framework 框架开发入门教程 #### 一、简介 本文档旨在提供一个针对初学者的 **Zend Framework** 开发指南。该框架是一种基于 PHP 的开源 Web 应用框架,提供了大量的组件来帮助开发者构建高效且健壮的 ...

    ZendFramework中文文档

    1. Introduction to Zend Framework 1.1. 概述 1.2. 安装 2. Zend_Acl 2.1. 简介 2.1.1. 关于资源(Resource) 2.1.2. 关于角色(Role) 2.1.3. 创建访问控制列表(ACL) 2.1.4. 注册角色(Role) 2.1.5. 定义访问...

    2013年最近Zend Framework2图书Web Development with Zend Framework 2

    Zend Framework 2与Zend Framework 1在技术架构上有较大差异,因此二者不兼容。 2. LeanPub出版方式: LeanPub是一种全新的电子书出版模式,通过使用轻量级工具和多次迭代来获取读者反馈,并在确保书籍质量后发布。...

    zend framework中文帮助

    Zend Framework 提供了 View Helper 和 View Script 机制,帮助开发者更方便地创建和管理视图。 **4. 模型(Model)** 模型处理应用程序的业务逻辑和数据操作。 Zend Framework 提供了多种数据库访问组件,如 Zend...

    ZendFramework-1.5.3.tar.gz

    2. **组件化结构**:Zend Framework采用模块化设计,包含许多独立的组件,如数据库抽象层(Zend_Db)、表单处理(Zend_Form)、视图助手(Zend_View_Helper)、认证和授权(Zend_Auth和Zend_Acl),以及RESTful Web...

    Zend Framework ppt入门教程

    在`Zend Framework.ppt`这个入门教程中,你将学习如何搭建开发环境,安装和配置 Zend Framework。通常,这包括设置PHP版本、安装Composer(PHP的依赖管理工具)以及通过Composer下载和安装 Zend Framework 框架。...

    zend framework 英文手册下载

    Zend_View 提供了一系列视图助手,如 Zend_View_Helper_Navigation,用于创建导航菜单,还有 Zend_View_Helper_FormElement 用于渲染表单元素,这些助手简化了视图层的代码编写。 **8. 配置管理** Zend_Config ...

    zendframework blog

    **Zend Framework博客系统详解** Zend Framework(简称ZF)是一个开源的、基于PHP 5的MVC(Model-View-Controller)架构的Web应用开发框架。它遵循敏捷开发原则,提供了丰富的组件库,使得开发者能够快速构建高质量...

    zend framework编码规范

    ### ZEND Framework 编码规范详解 #### A.1. 总论 **范围与目的** 在软件开发领域,特别是基于 ZEND Framework 的项目中,统一且规范化的编码标准至关重要。良好的编码标准不仅能提升代码质量,还能增强项目的可...

    Web+Development+with+Zend+Framework+2+(2013)

    此外,作者还讲解了Zend Framework 2的视图(Views)、模型(Model)和路由(Routing)的概念及其操作模式,这包括了布局(Layouts)的使用,以及视图助手(View Helper)的编写。 书中还涉及了企业服务(Business ...

    Zend Framework教程之视图组件Zend_View用法详解

    在Zend Framework中,Zend_View是模型-视图-控制器(MVC)架构中视图层的重要组成部分,负责处理和呈现应用程序的输出。本教程将深入探讨Zend_View的使用方法、工作原理及其与其他组件的交互。 首先,让我们了解...

    Zend Framework配置 中文WORD版

    resources.view.helperPath.Zend_View_Helper = "Zend/View/Helper/" resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts" ``` **九、总结** Zend Framework的配置是其强大功能的关键部分,通过...

    Zend Framework动作助手Redirector用法实例详解

    Zend Framework中的动作助手Redirector是用于实现页面重定向功能的组件,它通过一套丰富的API提供灵活的重定向策略。在这篇文章中,我们将详细探讨Redirector的用法,并通过实例深入分析其功能和注意事项。 首先,...

    Zend_Framework_zh.rar

    **Zend Framework 中文手册** Zend Framework 是一个基于 Model-View-Controller (MVC) 架构的开源 PHP 开发框架,旨在促进Web应用程序的开发。它由PHP专家团队设计,提供了一套完整的工具集,用于构建高质量、可...

    Zend Framework自定义Helper类相关注意事项总结

    在Zend Framework中,自定义Helper类是为了扩展视图层的功能,使其能够处理特定的输出或者逻辑。以下是一些关于创建和使用自定义Helper类的关键注意事项: 1. **类命名规范**: - Helper类名必须遵循`Zend_View_...

    Zend Framework动作助手Url用法详解

    在Zend Framework中,动作助手(Action Helper)是一组设计用于帮助处理动作控制器任务的类。Url动作助手是其中的一种,用于生成URL。 在Zend Framework中创建URL是常见的需求,尤其是在进行页面跳转、链接生成以及...

Global site tag (gtag.js) - Google Analytics