PHP 常用自定义函数
2024-10-07 15:33:09
模拟 POST、GET 请求
/**
* 模拟post进行url请求
* @param string $url
* @param string $param
*/
protected function requestPOST($url = '', $param = '')
{
if (empty($url) || empty($param)) :
return false;
endif; $timeout = 300;
$postUrl = $url;
$curlPost = $param;
$ch = curl_init();//初始化curl
curl_setopt($ch, CURLOPT_URL,$postUrl); //抓取指定网页
curl_setopt($ch, CURLOPT_HEADER, 0); //设置header
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //要求结果为字符串且输出到屏幕上
curl_setopt($ch, CURLOPT_POST, 1); //post提交方式
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost); //提交的数据库
curl_setopt($ch, CURLOPT_BINARYTRANSFER,true); //二进制流
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); //设置请求超时时间
$data = curl_exec($ch);//运行curl
curl_close($ch); return $data;
} /**
* 模拟Get进行URL请求
* @param string $url 访问url路径[description]
* @return string
*/
protected function requestGET($url)
{
$curl = curl_init(); //初始化
curl_setopt($curl, CURLOPT_URL, $url); //设置抓取的url
curl_setopt($curl, CURLOPT_HEADER, 1); //设置头文件的信息作为数据流输出
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //设置获取的信息以文件流的形式返回,而不是直接输出。
$data = curl_exec($curl); //执行命令
curl_close($curl); //关闭URL请求
return $data; //返回获得的数据
}
md5加密数据 添加sign、验证 md5加密数据sign
// md5加密数据 添加sign
private function md5Encryption($post_data)
{
$post_data['time_stamp'] = time();
ksort($post_data);
$post_data['sign'] = md5( implode('#', $post_data) . '58coin' );
return $post_data;
} // 验证 md5加密数据sign
public function checkMd5Encryption($post_data)
{
// 验证有效期【60秒】
if( ($post_data['time_stamp']+60) < time() ):
echo json_encode(['code'=>400,'msg'=>'overtime!', 'data'=>'']);
die;
endif;
// 验证签名
$sign = $post_data['sign'];
unset($post_data['sign']);
ksort($post_data);
if($sign != md5( implode('#', $post_data) . '58coin' ) ):
echo json_encode(['code'=>400,'msg'=>'sign error!', 'data'=>'']);
die;
endif;
}
最新文章
- Vue.js学习笔记(8)拖放
- centos7.2下编译安装git
- python学习笔记-Day6(2)
- 计算Excel中的Sheet个数
- 《C#并行编程高级教程》第8章 线程池 笔记
- python初准备:安装easy_install和pip
- Java并发——线程安全、线程同步、线程通信
- hdu 1242 dfs/bfs
- Struts2学习笔记(三):result配置的各项视图转发类型
- [转] boost::any的用法、优点和缺点以及源代码分析
- supervisor python开发的进程管理工具
- Arachnid包含一个简单的HTML剖析器能够分析包含HTML内容的输入流
- [Elasticsearch] 分布式文件存储
- iOS微信运动 刷分
- 新概念英语(1-25)Mrs. Smith&#39;s Kitchen
- 深度学习实战-强化学习-九宫格 当前奖励值 = max(及时奖励 + 下一个位置的奖励值 * 奖励衰减)
- 分析easyswoole3.0源码,服务启动为例(二)
- 千人基因组(1000 Genomes)提取群体(population)或者样本(sample ID)信息
- linux磁盘空间占满问题快速定位并解决
- linux 命令失效