美文网首页
php整理小功能

php整理小功能

作者: GEORGE_TIGER | 来源:发表于2020-02-28 19:21 被阅读0次
    1.字符串和十六进制互转
    <?php
       /**
        *字符串转十六进制函数 加密
        *@pream string $str='abc';
        */
        function strToHex($str){ 
            $hex="";
            for($i=0;$i<strlen($str);$i++)
            $hex.=dechex(ord($str[$i]));
            $hex=strtoupper($hex);
            return $hex;
        } 
        /**
        *十六进制转字符串函数  解密
        *@pream string $hex='616263';
        */ 
        function hexToStr($hex){   
            $str=""; 
            for($i=0;$i<strlen($hex)-1;$i+=2)
            $str.=chr(hexdec($hex[$i].$hex[$i+1]));
            return  $str;
        } 
    ?>
    

    加密内容:要加密的内容sxfenglei
    E8A681E58AA0E5AF86E79A84E58685E5AEB9737866656E676C6569
    解密内容:E8A681E58AA0E5AF86E79A84E58685E5AEB9737866656E676C6569
    要加密的内容sxfenglei

    2.获取当前时间戳、日期,精确到毫秒

    首先,我们封装一个获取时间戳的方法:

    第一种方法:时间戳13位

    /**
     * 获取时间戳到毫秒
     * @return bool|string
     */
    public static function getMillisecond(){
        list($msec, $sec) = explode(' ', microtime());
        $msectime =  (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);
        return $msectimes = substr($msectime,0,13);
    }
    

    成功获取到了,时间戳且精确到了毫秒!---- 13位
    第二种方法:时间戳浮点型

    /**
     * 时间戳 - 精确到毫秒
     * @return float
     */
    public static function getMillisecond() {
        list($t1, $t2) = explode(' ', microtime());
        return (float)sprintf('%.0f',(floatval($t1)+floatval($t2))*1000);
    }
    

    第三种方法:14位年月日时分秒+3位毫秒数

    /**
     * 年月日、时分秒 + 3位毫秒数
     * @param string $format
     * @param null $utimestamp
     * @return false|string
     */
    public static function ts_time($format = 'u', $utimestamp = null) {
        if (is_null($utimestamp)){
            $utimestamp = microtime(true);
        }
     
        $timestamp = floor($utimestamp);
        $milliseconds = round(($utimestamp - $timestamp) * 1000);
     
        return date(preg_replace('`(?<!\\\\)u`', $milliseconds, $format), $timestamp);
    }
    
    3.获取客户端IP地址
    function getClientIp() {
            $realip = '';
            $unknown = 'unknown';
            if (isset($_SERVER)){
                if(isset($_SERVER['HTTP_CDN_SRC_IP']) && !empty($_SERVER['HTTP_CDN_SRC_IP']) && strcasecmp($_SERVER['HTTP_CDN_SRC_IP'], $unknown)){
                    $realip = $_SERVER['HTTP_CDN_SRC_IP'];
                }else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && !empty($_SERVER['HTTP_X_FORWARDED_FOR']) && strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'], $unknown)){
                    $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
                    foreach($arr as $ip){
                        $ip = trim($ip);
                        if ($ip != 'unknown'){
                            $realip = $ip;
                            break;
                        }
                    }
                }else if(isset($_SERVER['HTTP_CLIENT_IP']) && !empty($_SERVER['HTTP_CLIENT_IP']) && strcasecmp($_SERVER['HTTP_CLIENT_IP'], $unknown)){
                    $realip = $_SERVER['HTTP_CLIENT_IP'];
                }else if(isset($_SERVER['REMOTE_ADDR']) && !empty($_SERVER['REMOTE_ADDR']) && strcasecmp($_SERVER['REMOTE_ADDR'], $unknown)){
                    $realip = $_SERVER['REMOTE_ADDR'];
                }else{
                    $realip = $unknown;
                }
            }else{
                if(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), $unknown)){
                    $realip = getenv("HTTP_X_FORWARDED_FOR");
                }else if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), $unknown)){
                    $realip = getenv("HTTP_CLIENT_IP");
                }else if(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), $unknown)){
                    $realip = getenv("REMOTE_ADDR");
                }else{
                    $realip = $unknown;
                }
            }
            $realip = preg_match("/[\d\.]{7,15}/", $realip, $matches) ? $matches[0] : $unknown;
            return $realip;
    }
    
    4.php 把对象转化为json
      /**
        * 对象转换数组
        */
        function object_to_array($obj){
            if(is_array($obj)){
               return $obj;
            }
            $_arr = is_object($obj)? get_object_vars($obj) :$obj;
            foreach ($_arr as $key => $val){
                $val=(is_array($val)) || is_object($val) ? object_to_array($val) :$val;
                $arr[$key] = $val;
            }
            return json_encode($arr);
        }
    

    相关文章

      网友评论

          本文标题:php整理小功能

          本文链接:https://www.haomeiwen.com/subject/wqhrhhtx.html