PHP常用函数(1)
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)的更多相关文章
- oracle常用函数及示例
学习oracle也有一段时间了,发现oracle中的函数好多,对于做后台的程序猿来说,大把大把的时间还要学习很多其他的新东西,再把这些函数也都记住是不太现实的,所以总结了一下oracle中的一些常用函 ...
- 总结js常用函数和常用技巧(持续更新)
学习和工作的过程中总结的干货,包括常用函数.常用js技巧.常用正则表达式.git笔记等.为刚接触前端的童鞋们提供一个简单的查询的途径,也以此来缅怀我的前端学习之路. PS:此文档,我会持续更新. Aj ...
- [转]SQL 常用函数及示例
原文地址:http://www.cnblogs.com/canyangfeixue/archive/2013/07/21/3203588.html --SQL 基础-->常用函数 --===== ...
- PHP常用函数、数组方法
常用函数:rand(); 生成随机数rand(0,50); 范围随机数时间:time(); 取当前时间戳date("Y-m-d H:i:s"); Y:年 m:月份 d:天 H:当前 ...
- Oracle常用函数
前一段时间学习Oracle 时做的学习笔记,整理了一下,下面是分享的Oracle常用函数的部分笔记,以后还会分享其他部分的笔记,请大家批评指正. 1.Oracle 数据库中的to_date()函数的使 ...
- Thinkcmf:页面常用函数
Thinkcmf:页面常用函数 全站seo: 文章列表: {$site_seo_title} <!--SEO标题--> {$site_seo_keywords} < ...
- matlab进阶:常用功能的实现,常用函数的说明
常用功能的实现 获取当前脚本所在目录 current_script_dir = fileparts(mfilename('fullpath')); % 结尾不带'/' 常用函数的说明 bsxfun m ...
- iOS导航控制器常用函数与navigationBar常用属性
导航控制器常用函数触发时机 当视图控制器的View将要出现时触发 - (void)viewWillAppear:(BOOL)animated 当视图控制器的View已经出现时触发 - (void)vi ...
- 《zw版·Halcon-delphi系列原创教程》 zw版-Halcon常用函数Top100中文速查手册
<zw版·Halcon-delphi系列原创教程> zw版-Halcon常用函数Top100中文速查手册 Halcon函数库非常庞大,v11版有1900多个算子(函数). 这个Top版,对 ...
- phpcms V9 常用函数 及 代码整理
常用函数 及 常用代码 总结如下 <?php //转换字符串或者数组的编码 str_charset($in_charset, $out_charset, $str_or_arr) //获取菜单 ...
随机推荐
- 网页引用google字体速度慢:fonts.googleapis.com
由于众所周知的原因,国内使用google font库有很大的问题. 使用国内镜像如360网站卫士常用前端公共库CDN服务 http://libs.useso.com/ 优点:使用方便 缺点:目标用户包 ...
- Ionic学习笔记三 Gulp在ionic中的使用
简介 Gulp是一个基于流的自动化构建器. 安装 npm config set registry http://registry.npm.taobao.org ---最好用国内源 npm instal ...
- 第五章 搭建S3C6410开发板测试环境
开发板是开发和学习嵌入式技术的主要设备.在这章中介绍了S3C6410开发板,它是三星公司推出的一款低功耗.高性价比的RISC处理器.安装串口调试工具:minicom.它的安装步骤:第1步:检测当前系统 ...
- zend studio 的使用
1.将php项目导入到zend studio 中的方式为:http://my.oschina.net/maomi/blog/86077: 2.zend studio中将php项目导出的方式为:如果你会 ...
- PHP MVC
学习一个框架之前,基本上我们都需要知道什么是mvc,即model-view-control,说白了就是数据控制以及页面的分离实现,mvc就 是这样应运而生的,mvc分为了三个层次,而且三个层次各司其职 ...
- ODOO-10.0 错误 Could not execute command 'lessc'
2017-01-05 20:24:12,473 4652 INFO None odoo.service.db: Create database `hello`. 2017-01-05 20:24:16 ...
- Linux达人养成第一季
Linux简介 一.Linux发展史 二.开源软件简介 三.Linux应用领域 四.Linux学习方法 五.Linux与Windows的不同 六.字符界面的优势 Linux系统安装 一.虚拟机安装 二 ...
- 20141203图片Base64编码与解码
最近需要将图片通过转码的形式传给移动端,使用了Base64转码与 解码 import java.io.FileInputStream; import java.io.FileOutputStream; ...
- Serializable unordered set
Serializable unordered set 可序列化哈希set #include <boost/algorithm/string/predicate.hpp> #include ...
- Python初学的易犯错误
当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂.这里列出了常见的的一些让你程序 crash 的运行时错误. 1)忘记在 if , elif , else , for , ...