• PHP常用函数(1)


    1. create_linkstring

    说明: 把数组拼接成字符串

     1 if (!function_exists('create_linkstring')) {
     2     /**
     3      * 把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
     4      * @param $para 需要拼接的数组
     5      * return 拼接完成以后的字符串
     6      */
     7     function create_linkstring($para)
     8     {
     9         if (!is_array($para)) {
    10             return $para;
    11         }
    12 
    13         $arg  = "";
    14         while (list($key, $val) = each($para)) {
    15             $arg.=$key."=".$val."&";
    16         }
    17         $arg = substr($arg, 0, -1);
    18     
    19         //如果存在转义字符,那么去掉转义
    20         if ( get_magic_quotes_gpc() ) {
    21             $arg = stripslashes($arg);
    22         }
    23     
    24         return $arg;
    25     }
    26 }
    View Code

    2. resolve_linkstring 

    说明: 将URL参数字符串转换成数组

     1 if (!function_exists('resolve_linkstring')) {
     2     /**
     3      * 将URL参数字符串转换成数组
     4      * 例如:mobile=18683338411&password=123456形式字符串拆分为数组
     5      * array['mobile'=>'18683338412', 'password'=>'123456']
     6      * @param string $para 解析的字符串
     7      * @return array|null
     8      */
     9     function resolve_linkstring($para)
    10     {
    11         if (!Str::contains($para, '=')) {
    12             return $para;
    13         }
    14         
    15         $para = explode('&', $para);
    16         $arg = array();
    17         foreach ($para as $val) {
    18             list($key, $value) = explode('=', $val);
    19             $arg[$key] = $value;
    20         }
    21         
    22         return $arg;
    23     }
    24 }
    View Code

     

    3. check_signature

    说明:URL签名校验

     1 if (!function_exists('check_signature')) {
     2     /**
     3      *
     4      * @desc 检查签名是否正确
     5      * @param $signature url中的签名
     6      * @param $timestamp url中的时间戳
     7      * @param $nonce url中的随机字符串
     8      * @return int [200 校验成功 1 参数不全 2 时间过期 3签名错误]
     9      */
    10     function check_signature($signature, $timestamp, $nonce)
    11     {
    12         if (empty($signature)|| empty($timestamp) || empty($nonce)) {
    13             return 1;
    14         }
    15 
    16         // 获得参数校验 【不同场景,配置不同】
    17         $secret = config('appinit.secret');
    18         $expire = config('appinit.expire');
    19         
    20         // 请求时间超过有效期
    21         if ( time() >= $expire + $timestamp ) {
    22             return 2;
    23         }
    24         
    25         $tmpArr = array($secret, $timestamp, $nonce);
    26         sort($tmpArr, SORT_STRING);
    27         $tmpStr = sha1(implode($tmpArr));
    28         
    29         return $tmpStr == $signature ? 200 : 3;
    30     }
    31 }
    View Code

     

    4. urlsafe_base64_*

    说明:安全base64的加解密

     1 <?php
     2 // 安全base64的加解密
     3 if (!function_exists('urlsafe_base64_encode')) {
     4     /**
     5      * 安全的base64编码
     6      * @param string $string 加密字符串
     7      * return string 加密数据
     8      */
     9     function urlsafe_base64_encode($string)
    10     {
    11         return str_replace(['+','/','='], ['-','_',''], 
    12                   base64_encode($string));
    13     }
    14 }
    15 
    16 if (!function_exists('urlsafe_base64_decode')) {
    17     /**
    18      * 安全的base64解码
    19      * @param string $string 加密数据
    20      * return string 解密数据原文
    21      */
    22     function urlsafe_base64_decode($string)
    23     {
    24         $data = str_replace(['-','_'], ['+','/'], $string);
    25         $mod4 = strlen($data) % 4;
    26         if ( $mod4 ) {
    27             $data .= substr('====', $mod4);
    28         }
    29         
    30         return base64_decode($data);
    31     }
    32 }
    33 ?>
    View Code
  • 相关阅读:
    hdu 3648 Median Filter (树状数组)
    poj 1470 Closest Common Ancestors (LCA)
    poj 1330 Nearest Common Ancestors (LCA)
    hdu 2586 How far away ? (LCA)
    poj 3253 Fence Repair (哈夫曼)
    poj 1094 Sorting It All Out (拓扑排序)
    hdu 2527 Safe Or Unsafe (哈夫曼树)
    三层架构
    SQL2008、SQL2013 执行Transact-SQL 语句或者批处理时发生了异常。错误5120
    【MediaKit】WPF项目中 调用摄像头拍照的开发包
  • 原文地址:https://www.cnblogs.com/king516/p/5552055.html
Copyright © 2020-2023  润新知