`

ThinkPhp 限制输出文字长度

阅读更多

【前言】

      需求:在前台显示不想输出全部字符输出20个字符左右

      最好别直接使用substr,这个函数对中文支持不是很好。搜索一番后找到个不错的,这里记录下

将该文件直接放到应用级别公共函数库下Application\Common\Common\function.php,若没有该文件创建即可自动引入

 

【案例】

<span>{$vol.des|msubstr=###,0,10}</span>

 

【主体】

<?php
/**
 * @desc	thinkphp自定义函数库...
 *
 */
// 1. msubstr字符串截取;
// 2. 通过curl发送get请求----这两种请求及支持HTTP协议,也支持https协议
// 3. 通过curl发送post请求---
// 4. 去除空格

/**  
 *字符串截取函数
 *开启mbstring扩展
 */
function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true){
    if(mb_strlen($str,$charset)>$length)
    {
        if(function_exists("mb_substr")){
            if($suffix)
                return mb_substr($str, $start, $length, $charset)."...";
            else
                return mb_substr($str, $start, $length, $charset);
        }elseif(function_exists('iconv_substr')) {
            if($suffix)
                return iconv_substr($str,$start,$length,$charset)."...";
            else
                return iconv_substr($str,$start,$length,$charset);
        }
        $re['utf-8'] = "/[x01-x7f]|[xc2-xdf][x80-xbf]|[xe0-xef][x80-xbf]{2}|[xf0-xff][x80-xbf]{3}/";
        $re['gb2312'] = "/[x01-x7f]|[xb0-xf7][xa0-xfe]/";
        $re['gbk'] = "/[x01-x7f]|[x81-xfe][x40-xfe]/";
        $re['big5'] = "/[x01-x7f]|[x81-xfe]([x40-x7e]|xa1-xfe])/";
        preg_match_all($re[$charset], $str, $match);
        $slice = join("",array_slice($match[0], $start, $length));
        if($suffix) return $slice."…";
        return $slice;
    }
    else
    {
        return $str;
    }
}

/**
 * GET 请求
 * 需要curl扩展支持
 */
function http_get($url){
    $oCurl = curl_init();
    if(stripos($url,"https://")!==FALSE){
        curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($oCurl, CURLOPT_SSLVERSION, 1);
    }
    curl_setopt($oCurl, CURLOPT_URL, $url);
    curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1 );
    $sContent = curl_exec($oCurl);
    $aStatus = curl_getinfo($oCurl);
    curl_close($oCurl);
    if(intval($aStatus["http_code"])==200){
        return $sContent;
    }else{
        return false;
    }
}

/**
 * POST 请求
 * 需要curl扩展支持
 */
function http_post($url,$param,$post_file=false){
    $oCurl = curl_init();
    if(stripos($url,"https://") !== FALSE){
        curl_setopt($oCurl,CURLOPT_SSL_VERIFYPEER,FALSE);
        curl_setopt($oCurl,CURLOPT_SSL_VERIFYHOST,false);
        curl_setopt($oCurl,CURLOPT_SSLVERSION,1);
    }
    if (is_string($param) || $post_file){
        $strPOST = $param;
    } else {
        $aPOST = array();
        foreach($param as $key => $val){
            $aPOST[] = $key."=" . urlencode($val);
        }
        $strPOST = join("&",$aPOST);
    }
    curl_setopt($oCurl,CURLOPT_URL,$url);
    curl_setopt($oCurl,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($oCurl,CURLOPT_POST,true);
    curl_setopt($oCurl,CURLOPT_POSTFIELDS,$strPOST);
    $sContent = curl_exec($oCurl);
    $aStatus = curl_getinfo($oCurl);
    curl_close($oCurl);
    if(intval($aStatus["http_code"]) == 200){
        return $sContent;
    }else{
        return false;
    }
}

/**
 * 空格换行符过滤
 */
function trimAll($parma){
    if(is_array($parma)){
        return array_map('trimAll',$parma);
    }
    $before = array(" ","   ","\t","\r","\n");
    $after = array('','','','','');
    return str_replace($before,$after,$parma);
}

 

 

 

 

 

 

 

.

分享到:
评论

相关推荐

    ThinkPHP浏览器控制台输出内容

    ThinkPHP3.2.3利用行为扩展,实现浏览器控制台输出数据。 文件夹一共3个文件。 1.Behavior 请放在 Application\Common 下 2.function.php 请放在 Application\Common\Common 下 3.tags.php 请放在 ...

    Thinkphp HTML输出压缩类

    CI3.0自带了页面压缩功能,也就是将页面中的空格之类的全部去掉,这样就能省下不少的空间。 当然,TP也自带的OUTPUT_ENCODE页面压缩功能,可是当我配置OUTPUT_ENCODE=TRUE时,老是... // 输出模板文件 echo $content; } }

    Thinkphp json输出类

    虽然简单,但是希望大家提出更好的建议

    浅析ThinkPHP的模板输出功能

    在ThinkPHP框架中,模板输出是其核心特性之一,它使得开发者能够轻松地构建与用户交互的界面。本文将深入浅析ThinkPHP的模板输出功能,以及如何在实践中运用。 首先,每个`xxxAction.class.php`文件代表的是一个...

    thinkphp限制IP访问次数在N分钟内限制多少次访问

    thinkphp限制IP访问次数,1分钟内某IP访问超过50次后,60s内不可继续访问,60s后可继续访问,重复些动作。 Cache::set(变量名,数组或字符串,缓存时间) 变量名:定义存该数组或字符串的命名 缓存时间:单位为秒,触发...

    thinkphp_thinkphp_thinkphp5_

    在ThinkPHP5中,我们可以通过`$this-&gt;view-&gt;assign()`方法向模板传递数据,这些数据在模板中可以使用双大括号`{{ }}`进行输出。例如,`{{ $title }}`将输出控制器中赋值的变量 `$title`。此外,ThinkPHP5还支持视图...

    ThinkPHP模板输出display用法分析

    在ThinkPHP中,display() 方法是模板输出的核心,它负责将数据渲染到模板文件中并输出到浏览器。下面将详细解析ThinkPHP模板输出display用法。 首先,ThinkPHP的display()方法允许开发者非常方便地输出模板,无需...

    thinkphp后台管理系统

    thinkphp是一个基于thinkphp6的后台管理系统,对标laravel-admin。 think-admin特色: 1、composer库一键安装,丰富的配置项目 2、根据数据库自动生成增删改查,并生成相应的菜单和权限,减少基础机械重复工作 3、...

    ThinkPHP_v5.0.7.zip_ThinkPHP V5.0.7_thinkphp

    《深入理解ThinkPHP V5.0.7框架》 ThinkPHP,作为一个广受开发者欢迎的开源PHP框架,其V5.0.7版本是其发展过程中一个重要里程碑。这个版本不仅继承了ThinkPHP一贯的轻量级和面向对象设计原则,还引入了诸多新特性和...

    用thinkphp开发的新闻发布系统,从前端到后端,全部源码!

    《基于ThinkPHP的新闻发布系统全解析》 在IT行业中,构建一个新闻发布系统是常见的需求,尤其对于企业网站或媒体平台来说。本篇文章将深入探讨如何使用ThinkPHP框架开发这样一个系统,涵盖从前端到后端的全过程,...

    thinkphp3 与thinkphp5 日志信息泄露检测脚本.zip

    2. 使用强权限控制,限制只有特定用户或服务能读写日志文件。 3. 对日志信息进行适当的过滤和加密,避免敏感数据直接写入日志。 4. 定期清理和审计日志,避免日志文件积累过多信息。 5. 开启并配置防火墙或Web应用...

    ThinkPHP6.0完全开发手册.pdf

    ThinkPHP 的开发规范、目录结构、配置架构、请求流程、控制器、模型、视图、路由、事件、缓存、Session、 Cookie、上传、命令行启动、内置服务器、查看版本、自动生成应用目录、创建类库文件、清除缓存文件、生成...

    ThinkPHP的success并不跳转页面,而是直接输出json字符串的原因.zip解决ThinkPHP的success并不跳转页面,而是直接输出json字符

    总的来说,ThinkPHP的`success`方法不跳转页面而是输出JSON字符串,是因为它被设计用来处理API和AJAX请求,而这些请求通常需要返回可解析的数据,而不是执行页面重定向。理解和调整你的请求类型以及控制器的响应机制...

    ThinkPHP问答社区系统源码

    ThinkPHP问答社区系统源码,问答讨论社区系统源码,一套基本的问答讨论社区框架,基于thinkphp开发,只是部分不太完善,基础的问答模块还是比较完整的,有能力的大佬可以拿去二开一下使用的。 ThinkPHP问答社区系统...

    ThinkPHP3.1完全开发手册

    ThinkPHP3.1完全开发手册 版权申明 发布本资料须遵守开放出版许可协议 1.0 或者更新版本。 未经版权所有者明确授权,禁止发行本文档及其被实质上修改的版本。 未经版权所有者事先授权,禁止将此作品及其衍生作品以...

    thinkphp完整源码.rar

    《深入剖析ThinkPHP框架:基于“thinkphp完整源码.rar”》 ThinkPHP是中国最流行的PHP框架之一,以其简洁、高效、易用的特性深受开发者喜爱。本文将围绕"thinkphp完整源码.rar"展开,深入解析ThinkPHP的核心概念、...

    thinkphp转layui树形组件

    由于layui树形组件格式的特殊性,可能从mysql查出数据组装成layui属性组件所需的数据格式这一点会让你头痛; 在该文件中完整的展示了如何利用tp的模型从mysql取得数据,并进行无限分类,最终转换成layui树形组件所...

    ThinkPHP6.0完全开发手册

    "ThinkPHP6.0完全开发手册" 本手册主要讲述ThinkPHP 6.0框架的使用和开发指南,涵盖了ThinkPHP 6.0的基础知识、开发规范、配置架构、请求流程、控制器、模型、视图、模板引擎、日志处理、调试、验证、缓存、Session...

Global site tag (gtag.js) - Google Analytics