php常用方法一

1.用户名用***替换  /**
     * 用户名中间用***替换
     * @param string $str 需要替换的字符串
     * @param int $len 需要替换的位数
     * @param string $replace 需要替换成的内容,一般是***
     */
    public static function substr_cut($str,$len=1,$replace=‘***‘) {
        $strlen = mb_strlen($str, ‘utf-8‘);
        if($strlen < 2 || $strlen <= $len) {
            return $str.$replace;
        } else {
            $first = mb_substr($str, 0, $len, ‘utf-8‘);
            $last = mb_substr($str, -$len, $len, ‘utf-8‘);
            return $first.$replace.$last;
        }
    }    
2.ajax输出
  /**
     * 输出ajax数据
     * @param string $msg 错误或成功提示信息
     * @param boolean $status 状态
     * @param object | array | string $data 需要返回的数据
     * @param string $type 返回格式;默认json
     * @param string $callback js回调函数名,此参数不为空且类型为jsonp时返回jsonp
     * @return string | object  string JSON encoded object
     */
    public static function output($msg = null, $status = true, $data = null, $type = ‘json‘, $callback = ‘‘) {
        $response = array();
        $response[‘status‘] = $status;
        if ($msg !== null) {
            $response[‘msg‘] = $msg; // 返回的提示信息
        }
        if ($data !== null) {
            $response[‘data‘] = $data; // 返回的数据
        }
        if (($type == ‘jsonp‘) && !empty($callback)) {
            echo $callback . ‘(‘ . json_encode( $response ) . ‘);‘;
        } else { // 输出 json 文本格式
            echo json_encode($response);
        }
        Yii::app()->end();
    }
3.截取字符串用...
  /**
     * 截取字符串,大于指定长度的字符串在截取之后,会输出三个小点
     * @param string $string
     * @param int $length
     * @param string $encode
     * @return string
     */
    public static function substr( $string, $length, $encode="utf-8") {
        if ( mb_strlen( $string, $encode ) <= $length )
            return $string;

        $newString = mb_substr( $string, 0, $length, $encode );
        $newString .= ‘...‘;
        return $newString;
    }
4.随机产生uuid
        /**
     * 生成UUID编码
     */
    public static function uuid(){
        $chars = md5(uniqid(time().mt_rand(), true));
        $uuid  = substr($chars,0,8) . ‘-‘;
        $uuid .= substr($chars,8,4) . ‘-‘;
        $uuid .= substr($chars,12,4) . ‘-‘;
        $uuid .= substr($chars,16,4) . ‘-‘;
        $uuid .= substr($chars,20,12);
        return $uuid;
    }    
5.防止重复提交
  /**
     * 设置表单token,防止重复提交。
     * @param    $identify    唯一标记
     * @return     hash
     */
    public static function hash($identify = ‘token‘) {
        $hash    = uniqid();
        Yii::app()->session->add($identify, $hash);
        return     $hash;
    }

    /**
     * 验证token码是否正确
     * @param    $hash
     * @param    $identify    唯一标记
     * @return    true|false
     */
    public static function checkHash($hash, $identify = ‘token‘){
        $result    = false;

        $sessionHash    = Yii::app()->session->get($identify);
        if (strnatcasecmp($sessionHash, $hash)===0) {
             $result    = true;
        }
        Yii::app()->session->remove($identify);
        return $result;
    }
时间: 2024-10-06 03:30:25

php常用方法一的相关文章

实现不同vlan间的相互通信方法一:单臂路由

实现不同vlan间的相互通信方法一:单臂路由   一.试验目的:通过单臂路由实现VLAN间的通信 二.使用工具:GNS3模拟器,SecureCRT,其中PC1和PC2用Route模拟 三.实验拓扑: 四.具体步骤 1.设置PC1的IP:192.168.1.1 /24 网关:192.168.1.254 最后通过show ip inter brief进行验证 2.设置PC2的IP:192.168.2.1 /24 网关:192.168.2.254 最后通过show ip inter brief进行验证

JS实现图片上传预览效果:方法一

<script type="text/javascript"> //处理file input加载的图片文件 $(document).ready(function(e) { //判断浏览器是否有FileReader接口 if(typeof FileReader =='undefined') { /*$("#images_show").css({'background':'none'}).html('亲,您的浏览器还不支持HTML5的FileReader接口

依据数据集 进行 树 的构造(treeview & dataset) 方法一

type PDepData=^DepData; DepData = record ID: Integer; DepID: string; DepName: string; end; procedure FreeTV(tv: TTreeview); var i: Integer; begin for i := 0 to tv.Items.Count - 1 do begin dispose(tv.Items[i].Data); end; tv.Items.Clear; end; procedure

Cocos2d-x 精灵碰撞检测(方法一)

声明函数碰撞检测函数,两个精灵和重写update bool isCollision( CCPoint p1,CCPoint p2,int w1,int h1,int w2,int h2 ); CCSprite *sp2; CCSprite *sp1; virtual void update(float delta); //重写触摸事件 virtual void registerWithTouchDispatcher(); virtual bool ccTouchBegan(CCTouch *pT

asp.net后台导出excel的方法一:使用response导出excel

方法一:带StringBuilder 方法的导出 该方法是将所有的数据通过html的形式写入到StringBuilder 中,然后通过response导出. 熟悉html格式的人可以改变成各种格式. List<U> objList = new List<U>(); objList = BLL.GetInfo();//读取数据 StringBuilder sb = new StringBuilder(); sb.Append("<style type=\"t

垂直居中-父元素高度确定的多行文本(方法一)

父元素高度确定的多行文本.图片等的竖直居中的方法有两种: 方法一:使用插入 table  (包括tbody.tr.td)标签,同时设置 vertical-align:middle. css 中有一个用于竖直居中的属性 vertical-align,在父元素设置此样式时,会对inline-block类型的子元素都有用.下面看一下例子: html代码: <body> <table><tbody><tr><td class="wrap"&

GDI+实现双缓冲绘图方法一

private void Form5_MouseMove(object sender, MouseEventArgs e) { int intOX = rectDrawArea.X; int intOY = rectDrawArea.Y; rectDrawArea.X = e.X; rectDrawArea.Y = e.Y; Debug.WriteLine(rectDrawArea.ToString()); //Invalidate(); MyDrawFun(); } private void

JBOSS通过Apache负载均衡方法一:使用mod_jk

JBOSS通过Apache负载均衡方法一:使用mod_jk   本文第一.二节分别对Linux环境下前端使用Apache以及windows环境下前端使用IIS通过AJP协议和后端的JBOSS通信实现负载均衡进行说明,第三节对相应的参数做了解释. 一.   Linux环境下Apache + mod_jk + JBOSS Apache和JBOSS使用AJP协议,利用8009端口通过mod_jk来实现通信. 1.  安装并配置apache 下载apache代码包,上传到服务器. 解开代码包 [[ema

struts2验证框架方法一

struts2验证框架方法一: *只有一个文件 *在action所对应的包下面建立****-validation.xml(****是action的类名),如:SaveUserAction-validation.xml *如果是多个方法的action,则这样写:action类名-方法名-validation.xml ============================如下配置================================ <?xml version="1.0"