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. MySQL 性能调优之查询优化

    见原文: http://www.cnblogs.com/markjiao/p/5665775.html

  2. js中的break ,continue, return (转)

    面向对象编程语法中我们会碰到break ,continue, return这三个常用的关键字,那么关于这三个关键字的使用具体的操作是什么呢?我们在使用这三关键字的时候需要注意和需要理解的规则是什么呢? ...

  3. 论SCRM系统对传统行业的冲击

    SCRM(Social Customer Relationship Management)顾名思义是社会型客户关系管理系统,这在当前的电子商务领域是一个创新的概念,由于社交媒体(Social Medi ...

  4. C# 实现软件的重启

    有些时候我们想用户在设置完之后使程序重新启动生效,这时候我们只需要简单的应用一下代码即可: if (MessageBox.Show("设置保存成功,下次启动时生效,是否马上重启软件?&quo ...

  5. 匈牙利算法 DFS模板(了解度+1)

    //算法核心是求最大匹配数 #include<bits/stdc++.h> #include<iostream> #include<cstdio> #include ...

  6. 堆排序(c++第一次尝试)

    对排序的实现思路有两种 第一种:1.构建最小堆.2.将最小堆的堆顶元素取出放到辅助数组的0号下标.3.重新调整成最小堆(向上调整) 4.重复2-3 第二种:1.构建最大堆.2.将堆顶元素(0号)与最后 ...

  7. 3、C#入门第3课

    1.c#中一个解决方案 里面两个程序 怎么一个启动另一个? 我一个解决方案下,有两个工程,我想让A工程在适当时候,启动B工程,比如A中有个按钮,一点,B工程就启动了. System.Diagnosti ...

  8. spring+mybatis整合读取不了配置文件

    报错如下: java.sql.SQLException: unkow jdbc driver : ${jdbc.url}其余错误就不贴了,主要原因是没有读取到配置文件 读取配置文件代码: <be ...

  9. 安装sql2008的时候选择的是Windows身份验证,现在我想用sql server身份验证,我应该到哪儿设置呢

    本文档整理自网络,存粹用作笔记. 安装过程中,SQL Server 数据库引擎可以设置为 Windows 身份验证模式或 SQL Server 和 Windows 身份验证模式. 本文介绍如何在安装后 ...

  10. ASP.NET MVC图片上传

    工具:ssi-uploader $('#id').ssi_uploader({ url: 'path' }); public ActionResult path() { HttpPostedFileB ...