1. create_linkstring

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

 if (!function_exists('create_linkstring')) {
/**
* 把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
* @param $para 需要拼接的数组
* return 拼接完成以后的字符串
*/
function create_linkstring($para)
{
if (!is_array($para)) {
return $para;
} $arg = "";
while (list($key, $val) = each($para)) {
$arg.=$key."=".$val."&";
}
$arg = substr($arg, 0, -1); //如果存在转义字符,那么去掉转义
if ( get_magic_quotes_gpc() ) {
$arg = stripslashes($arg);
} return $arg;
}
}

2. resolve_linkstring 

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

 if (!function_exists('resolve_linkstring')) {
/**
* 将URL参数字符串转换成数组
* 例如:mobile=18683338411&password=123456形式字符串拆分为数组
* array['mobile'=>'18683338412', 'password'=>'123456']
* @param string $para 解析的字符串
* @return array|null
*/
function resolve_linkstring($para)
{
if (!Str::contains($para, '=')) {
return $para;
} $para = explode('&', $para);
$arg = array();
foreach ($para as $val) {
list($key, $value) = explode('=', $val);
$arg[$key] = $value;
} return $arg;
}
}

3. check_signature

说明:URL签名校验

 if (!function_exists('check_signature')) {
/**
*
* @desc 检查签名是否正确
* @param $signature url中的签名
* @param $timestamp url中的时间戳
* @param $nonce url中的随机字符串
* @return int [200 校验成功 1 参数不全 2 时间过期 3签名错误]
*/
function check_signature($signature, $timestamp, $nonce)
{
if (empty($signature)|| empty($timestamp) || empty($nonce)) {
return 1;
} // 获得参数校验 【不同场景,配置不同】
$secret = config('appinit.secret');
$expire = config('appinit.expire'); // 请求时间超过有效期
if ( time() >= $expire + $timestamp ) {
return 2;
} $tmpArr = array($secret, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = sha1(implode($tmpArr)); return $tmpStr == $signature ? 200 : 3;
}
}

4. urlsafe_base64_*

说明:安全base64的加解密

 <?php
// 安全base64的加解密
if (!function_exists('urlsafe_base64_encode')) {
/**
* 安全的base64编码
* @param string $string 加密字符串
* return string 加密数据
*/
function urlsafe_base64_encode($string)
{
return str_replace(['+','/','='], ['-','_',''],
base64_encode($string));
}
} if (!function_exists('urlsafe_base64_decode')) {
/**
* 安全的base64解码
* @param string $string 加密数据
* return string 解密数据原文
*/
function urlsafe_base64_decode($string)
{
$data = str_replace(['-','_'], ['+','/'], $string);
$mod4 = strlen($data) % 4;
if ( $mod4 ) {
$data .= substr('====', $mod4);
} return base64_decode($data);
}
}
?>

PHP常用函数(1)的更多相关文章

  1. oracle常用函数及示例

    学习oracle也有一段时间了,发现oracle中的函数好多,对于做后台的程序猿来说,大把大把的时间还要学习很多其他的新东西,再把这些函数也都记住是不太现实的,所以总结了一下oracle中的一些常用函 ...

  2. 总结js常用函数和常用技巧(持续更新)

    学习和工作的过程中总结的干货,包括常用函数.常用js技巧.常用正则表达式.git笔记等.为刚接触前端的童鞋们提供一个简单的查询的途径,也以此来缅怀我的前端学习之路. PS:此文档,我会持续更新. Aj ...

  3. [转]SQL 常用函数及示例

    原文地址:http://www.cnblogs.com/canyangfeixue/archive/2013/07/21/3203588.html --SQL 基础-->常用函数 --===== ...

  4. PHP常用函数、数组方法

    常用函数:rand(); 生成随机数rand(0,50); 范围随机数时间:time(); 取当前时间戳date("Y-m-d H:i:s"); Y:年 m:月份 d:天 H:当前 ...

  5. Oracle常用函数

    前一段时间学习Oracle 时做的学习笔记,整理了一下,下面是分享的Oracle常用函数的部分笔记,以后还会分享其他部分的笔记,请大家批评指正. 1.Oracle 数据库中的to_date()函数的使 ...

  6. Thinkcmf:页面常用函数

    Thinkcmf:页面常用函数 全站seo: 文章列表: {$site_seo_title}        <!--SEO标题--> {$site_seo_keywords}   < ...

  7. matlab进阶:常用功能的实现,常用函数的说明

    常用功能的实现 获取当前脚本所在目录 current_script_dir = fileparts(mfilename('fullpath')); % 结尾不带'/' 常用函数的说明 bsxfun m ...

  8. iOS导航控制器常用函数与navigationBar常用属性

    导航控制器常用函数触发时机 当视图控制器的View将要出现时触发 - (void)viewWillAppear:(BOOL)animated 当视图控制器的View已经出现时触发 - (void)vi ...

  9. 《zw版·Halcon-delphi系列原创教程》 zw版-Halcon常用函数Top100中文速查手册

    <zw版·Halcon-delphi系列原创教程> zw版-Halcon常用函数Top100中文速查手册 Halcon函数库非常庞大,v11版有1900多个算子(函数). 这个Top版,对 ...

  10. phpcms V9 常用函数 及 代码整理

    常用函数 及 常用代码 总结如下 <?php //转换字符串或者数组的编码 str_charset($in_charset, $out_charset, $str_or_arr) //获取菜单 ...

随机推荐

  1. 提升Nginx+PHP-FPM性能技巧

    /etc/php-fpm.d 2.1进程数   php-fpm初始/空闲/最大worker进程数      pm.max_children = 300      pm.start_servers = ...

  2. [转] Loren on the Art of MATLAB

    http://blogs.mathworks.com/loren/2007/03/01/creating-sparse-finite-element-matrices-in-matlab/ Loren ...

  3. UE4 4.14 专用服务器没有生成解决办法

    简单说一下UE4 专用服务器的生成(网上也有其它版本的但是在4.14.1 上不管用) 1.用源代码编译的引擎(如何获取百度上有很多介绍)创建一个C++ UE4 工程. 2. 在vs 中找到红色这个文件 ...

  4. csv 文件用Excel打开乱码

    最近在做一个上传的功能,记录下自己的感受. 刚开始我用的是excel上传:但是发现客户服务器有用64位的,使用的时候程序会报错: 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0” ...

  5. iOS 动画学习

    图层树.寄宿图以及图层几何学(一)图层的树状结构 技术交流新QQ群:414971585 巨妖有图层,洋葱也有图层,你有吗?我们都有图层 -- 史莱克 Core Animation其实是一个令人误解的命 ...

  6. xxxxxxx

    int c; int b; bool h;

  7. jquery实现AJAX的4种方法

    当我们用javascript写ajax程序写得很“开心”的时候,突然有人告诉你有一种东西叫jquery,它会告诉你不直接和 HttpRequest是多么的快乐,同时你再也不需要再烦恼纠结的ajax乱码 ...

  8. Python 定位字符串

    一位朋友在玩闯关游戏时遇到如下问题: 感觉考查的就是字符串操作,用string模块就可完成:代码如下: # -*- coding: utf-8 -*- __author__ = 'Evilxr' im ...

  9. WingIDE中文乱码问题解决方法

    WingIDE中文乱码问题解决方法 安装完WingIDE后,首次运行python脚本时,若脚本中含有UTF-8中文,在Debug I/O输出框中,全部变成了乱码. 这时其实我们设置下WingIDE的编 ...

  10. toggle()方法和hove()方法

    toggle()语法结构: toggle(fn1,fn2,fn3,....fnN); 第一次单击元素,触发第一个元素,再次单击触发第二个元素,如果有更多元素,依次触发,直到最后一个元素,随后单击反复对 ...