【前言】
需求:在前台显示不想输出全部字符输出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); }
.
相关推荐
ThinkPHP3.2.3利用行为扩展,实现浏览器控制台输出数据。 文件夹一共3个文件。 1.Behavior 请放在 Application\Common 下 2.function.php 请放在 Application\Common\Common 下 3.tags.php 请放在 ...
虽然简单,但是希望大家提出更好的建议
ThinkPHP中的每一个xxxAction.class.php文件就代表着一个应用模块,这个Action中的每一个方法(function)代表着一个操作,操作可以分为有输出到模板的操作和只具执行不需要输出的操作。 打开Myapp/Lib/Action/...
thinkphp限制IP访问次数,1分钟内某IP访问超过50次后,60s内不可继续访问,60s后可继续访问,重复些动作。 Cache::set(变量名,数组或字符串,缓存时间) 变量名:定义存该数组或字符串的命名 缓存时间:单位为秒,触发...
主要介绍了ThinkPHP模板输出display用法,以实例形式详细分析了ThinkPHP使用display调用各类模板输出的用法,是非常常见的实用技巧,需要的朋友可以参考下
thinkphp是一个基于thinkphp6的后台管理系统,对标laravel-admin。 think-admin特色: 1、composer库一键安装,丰富的配置项目 2、根据数据库自动生成增删改查,并生成相应的菜单和权限,减少基础机械重复工作 3、...
ThinkPHP的success并不跳转页面,而是直接输出json字符串的原因.zip 解决ThinkPHP的success并不跳转页面,而是直接输出json字符
ThinkPHP3.1完全开发手册 版权申明 发布本资料须遵守开放出版许可协议 1.0 或者更新版本。 未经版权所有者明确授权,禁止发行本文档及其被实质上修改的版本。 未经版权所有者事先授权,禁止将此作品及其衍生作品以...
由于layui树形组件格式的特殊性,可能从mysql查出数据组装成layui属性组件所需的数据格式这一点会让你头痛; 在该文件中完整的展示了如何利用tp的模型从mysql取得数据,并进行无限分类,最终转换成layui树形组件所...
ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布
Thinkphp5整合excel导入导出Thinkphp5整合excel导入导出Thinkphp5整合excel导入导出Thinkphp5整合excel导入导出Thinkphp5整合excel导入导出Thinkphp5整合excel导入导出Thinkphp5整合excel导入导出Thinkphp5整合excel...
thinkphp开发模板,把常用的功能都写好了,可以直接使用
用thinkphp开发的新闻发布系统,从前端到后端,全部源码!
Thinkphp6入门到实战
thinkphp漏洞检测工具
thinkphp完整源码.rar
主要介绍了thinkphp3.0输出重复两次的解决方法,是ThinkPHP2.x用户转3.x经常会遇到的问题,需要的朋友可以参考下
本文实例讲述了Thinkphp模板没有解析直接原样输出的解决方法。分享给大家供大家参考。具体如下: 一、问题: 最近在学习thinkphp模板了,但是发现模板页原样出来了,经过一番艰苦搜索终于找到解决方案。 二、解决...