`

thinkphp字符相关操作

    博客分类:
  • PHP
PHP 
阅读更多

【前言】

   本文总结下tp中字符相关操作

 

【主体】

(1)限制输出显示的长度,截取显示前几个字符

        这里显示0到10个字符,###表示本身

{$vol.content|msubstr=###,0,10}

   例如:数据库中的字符过长时,会限制输出10个。后面为...

(2)去除前几个字符

        php 在不知道字符串有多长的情况下,如何去除前三个字符?

$string='字符串';
$subject=substr_replace(string,'',0,3);

 

 

 

 

 

 

【总结】

最后附上修改封装后的截取字符串、去除空格等操作的函数

 

放到Common/Common/function.php下

<?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);
}

// 评论显示替换表情标签
function reFace($str){
    for($i=1;$i<76;$i++){
        $str = str_replace("[em_$i]","<img src='/Public/Face/$i.gif'/>",$str);
    }
    return $str;
}

 

 

 

 

 

.

分享到:
评论

相关推荐

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

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

    thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例

    本文实例讲述了thinkPHP5框架实现多数据库连接,跨数据连接查询操作。分享给大家供大家参考,具体如下: 1. 多数据库连接 方法1:在需要连接其他数据库的地方,使用Db::connect()方法动态连接数据库,方法参数为...

    thinkphp5敏感词过滤类

    引入后,可以按照类库的文档或者代码注释来配置和调用这个过滤功能,确保在用户输入的数据经过验证和过滤后再进行后续的操作,从而保障系统的安全性。 总的来说,ThinkPHP5敏感词过滤类结合DFA算法,为Web开发者...

    ThinkPHP数据操作指南

    ### ThinkPHP数据操作指南 #### 1. 版权信息 本文档由ThinkPHP文档组编写,最后更新于2008年12月24日。版权所有为2006年至2008年,发布地址为http://thinkphp.cn。 #### 2. 数据操作 ##### 2.1 数据库访问层 ...

    ThinkPHP3.1.3完整包

    ThinkPHP3.1.3版本相对于上一版本更加安全和易用,是一个建议升级的版本。 更新 该版本针对3.1.2进行了一些改进和完善,主要包括: 改进异常处理,支持致命错误捕获; 针对PDO驱动和Sqlsrv驱动的完善,支持参数...

    ThinkPHP社交网站源码

    6. `router.inc.php`:路由配置文件,ThinkPHP的路由机制允许开发者灵活地控制请求的分发,将不同的URL映射到不同的控制器和操作上,实现URL与业务逻辑的解耦。 7. `config_sample.inc.php`、`config.inc.php`和`...

    Thinkphp模板中截取字符串函数简介

    - **ThinkPHP模板操作技巧**:掌握模板标签、变量、条件语句、循环结构等模板语法。 - **ThinkPHP权限认证**:了解如何使用ThinkPHP的Auth类进行用户权限控制。 - **ThinkPHP URL访问方式**:理解ThinkPHP的四种...

    ThinkPHP5.0的助手函数汇总

    - `$name`:字符串类型,默认为空字符串,代表操作的数据表名称(不含前缀)。 - `$config`:数组类型或字符串类型,默认为空数组,代表数据库配置参数。 - `$force`:布尔类型,默认为`true`,代表是否强制重新...

    配置好的thinkphp,包括简单示例

    - 数据库操作:使用ThinkPHP的DB组件进行CRUD操作,如`Db::table('users')-&gt;select();` - 视图渲染:在控制器中调用`return $this-&gt;fetch('template_name');`,将数据传入模板并渲染输出。 8. **路由配置** ...

    ThinkPHP3.1修改支持php7

    在实际操作中,需要逐一检查ThinkPHP3.1框架的源代码,定位并替换上述可能存在的问题点。此外,升级过程中可能还会遇到其他兼容性问题,如数据库驱动、第三方库等,都需要进行相应的更新或替换。 在完成代码修改后...

    thinkphp6适配人大金仓

    总结起来,"thinkphp6适配人大金仓"涉及的关键知识点包括:ThinkPHP6框架的数据库配置、PDO连接方式、数据库操作API、异常处理、模型与表结构映射、以及数据库迁移。通过理解和掌握这些内容,你可以顺利地在ThinkPHP...

    ThinkPHP_getshell-v2.zip

    标题“ThinkPHP_getshell-v2.zip”提示我们关注的是与ThinkPHP框架相关的安全问题,特别是一个可能导致getshell的漏洞。Getshell通常指的是攻击者能够通过某种方式在目标服务器上执行命令,这通常与代码注入漏洞相关...

    thinkphp压缩打包.rar

    总的来说,这个“thinkphp压缩打包.rar”压缩包涉及了 ThinkPHP 框架的 MVC 设计模式,PHP 的文件压缩和下载操作,以及相关的安全注意事项。学习并掌握这些知识点,对于提升 PHP Web 开发技能大有裨益。

    ThinkPHP3.2.3完全开发手册

    7. **辅助函数(Assist Functions)**:手册会列出框架提供的各种辅助函数,这些函数可以简化常见的开发任务,如字符串处理、日期时间操作等。 8. **插件(Plugins)**和**行为(Behaviors)**:理解如何编写和使用插件以...

    thinkphp简单登录实例

    在ThinkPHP中,模型是用来操作数据表的。创建一个`UserModel`,在其中定义与用户表交互的方法,如`login`、`register`等。例如: ```php namespace app\model; use think\Model; class UserModel extends Model { ...

    thinkphp生成word文档并导出

    这可能涉及到SQL查询,以及对查询结果的处理,如格式化数据、拼接字符串等。 2. **创建Word对象**:在`Wordmaker.class.php`中,可能会使用第三方库,如PHPWord,它是一个PHP库,能够方便地创建Microsoft Word ....

    thinkphp3.2.3-demo

    ThinkPHP提供了预编译SQL语句和自动过滤特殊字符的功能,可以有效防止这类攻击。 7. **异常处理**:在可能出现错误的地方,使用ThinkPHP的异常处理机制,如`try...catch`结构,捕获并处理可能出现的错误,提高程序...

    ThinkPHP5控制器从入门到精通.zip

    例如,假设有一个`Article`模型用于处理文章相关操作,我们可以在控制器中调用模型方法获取文章列表: ```php public function list() { $articleModel = new \app\model\Article(); $articles = $articleModel-&gt;...

    php 手册汇总(zend,thinkphp)

    2. **字符串与数组操作**:讲解字符串处理函数和数组操作函数的使用,以及正则表达式的应用。 3. **面向对象**:深入理解PHP的类和对象、继承、封装和多态。 4. **文件和I/O操作**:学习读写文件、目录操作、FTP和...

    thinkphp3.1.2学习笔记

    在ThinkPHP中,这些操作通过简单的API得以实现。 **一、读取** 1. **全部数据读取**:使用`M()`函数实例化数据模型,然后调用`select()`方法获取所有记录。 2. **单条记录读取**:可以通过`find()`方法或者`where...

Global site tag (gtag.js) - Google Analytics