模拟 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
1 // md5加密数据 添加sign 2 private function md5Encryption($post_data) 3 { 4 $post_data['time_stamp'] = time(); 5 ksort($post_data); 6 $post_data['sign'] = md5( implode('#', $post_data) . '58coin' ); 7 return $post_data; 8 } 9 10 // 验证 md5加密数据sign 11 public function checkMd5Encryption($post_data) 12 { 13 // 验证有效期【60秒】 14 if( ($post_data['time_stamp']+60) < time() ): 15 echo json_encode(['code'=>400,'msg'=>'overtime!', 'data'=>'']); 16 die; 17 endif; 18 // 验证签名 19 $sign = $post_data['sign']; 20 unset($post_data['sign']); 21 ksort($post_data); 22 if($sign != md5( implode('#', $post_data) . '58coin' ) ): 23 echo json_encode(['code'=>400,'msg'=>'sign error!', 'data'=>'']); 24 die; 25 endif; 26 }