zoukankan      html  css  js  c++  java
  • php 对url 操作类:url拼接、get获取页面、post获取页面(带传参)

    /*
     * @brief url封装类,将常用的url请求操作封装在一起
     * */
    class URL{
        private $error;
    
        public function __construct(){
            $this->error = new ErrorCase();
        }
    
        /**
         * combineURL
         * 拼接url
         * @param string $baseURL   基于的url
         * @param array  $keysArr   参数列表数组
         * @return string           返回拼接的url
         */
        public function combineURL($baseURL,$keysArr){
            $combined = $baseURL."?";
            $valueArr = array();
    
            foreach($keysArr as $key => $val){
                $valueArr[] = "$key=$val";
            }
    
            $keyStr = implode("&",$valueArr);
            $combined .= ($keyStr);
            
            return $combined;
        }
    
        /**
         * get_contents
         * 服务器通过get请求获得内容
         * @param string $url       请求的url,拼接后的
         * @return string           请求返回的内容
         */
        public function get_contents($url){
            if (ini_get("allow_url_fopen") == "1") {
                $response = file_get_contents($url);
            }else{
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
                curl_setopt($ch, CURLOPT_URL, $url);
                $response =  curl_exec($ch);
                curl_close($ch);
            }
    
            //-------请求为空
            if(empty($response)){
                $this->error->showError("50001");
            }
    
            return $response;
        }
    
        /**
         * get
         * get方式请求资源
         * @param string $url     基于的baseUrl
         * @param array $keysArr  参数列表数组      
         * @return string         返回的资源内容
         */
        public function get($url, $keysArr){
            $combined = $this->combineURL($url, $keysArr);
            return $this->get_contents($combined);
        }
    
        /**
         * post
         * post方式请求资源
         * @param string $url       基于的baseUrl
         * @param array $keysArr    请求的参数列表
         * @param int $flag         标志位
         * @return string           返回的资源内容
         */
        public function post($url, $keysArr, $flag = 0){
    
            $ch = curl_init();
            if(! $flag) curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
            curl_setopt($ch, CURLOPT_POST, TRUE); 
            curl_setopt($ch, CURLOPT_POSTFIELDS, $keysArr); 
            curl_setopt($ch, CURLOPT_URL, $url);
            $ret = curl_exec($ch);
    
            curl_close($ch);
            return $ret;
        }
    }
  • 相关阅读:
    Codeforces 937D
    Codeforces 458C
    Codeforces 934D
    Codeforces 934C
    Codeforces 36B
    Codeforces 374C
    Codeforces 374D
    编译优化
    Codeforces E
    Codeforces 920G
  • 原文地址:https://www.cnblogs.com/phpyangbo/p/6170864.html
Copyright © 2011-2022 走看看