PHP 常用自定义函数

模拟 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     }
原文地址:https://www.cnblogs.com/jxkshu/p/8471805.html