• 一个网页抓取的类支持get+post+cookie存储


    前段时间提取了一个工具类,分享给大家:

    <?php
    class httpconnector {
        private $curl;
        private $cookie;
        private $kv;
        function __construct(){
            $this->kv = new SaeKV();
            $this->kv->init();
            if($data=$this->kv->get("cookie"))
              $this->cookie=$data;
     
        }
        public function get($url) {
            $this->curl = curl_init();
            curl_setopt($this->curl, CURLOPT_URL, $url);
            curl_setopt($this->curl, CURLOPT_HEADER, 1);
            curl_setopt($this->curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
            curl_setopt($this->curl, CURLOPT_COOKIE, $this->cookie);
            curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, 1);
            $data = curl_exec($this->curl);
            curl_close($this->curl);
            preg_match_all("/Set-Cookie:(.*?);/", $data, $match, PREG_SET_ORDER);
            foreach ($match as $r) {
                if ($this->cookie != '') {
                    $this->cookie = $this->cookie . ';';
                }
                if (isset($r[1])) {
                    $this->cookie .= trim(str_replace("
    ", "", $r[1]));
                }
            }
            $this->kv->set("cookie",$this->cookie);
            return $data;
     
        }
        public function post($url, $params) {
            $this->curl = curl_init();
            curl_setopt($this->curl, CURLOPT_URL, $url);
            curl_setopt($this->curl, CURLOPT_HEADER, 1);
            curl_setopt($this->curl, CURLOPT_COOKIE, $this->cookie);
            curl_setopt($this->curl, CURLOPT_POST, 1);
            curl_setopt($this->curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
            curl_setopt($this->curl, CURLOPT_POSTFIELDS, $params);
            curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, 1);
            $data = curl_exec($this->curl);
            curl_close($this->curl);
            preg_match_all("/Set-Cookie:(.*?);/", $data, $match, PREG_SET_ORDER);
            foreach ($match as $r) {
                if ($this->cookie != '') {
                    $this->cookie = $this->cookie . ';';
                }
                if (isset($r[1])) {
                    $this->cookie .= trim(str_replace("
    ", "", $r[1]));
                }
            }
            $this->kv->set("cookie",$this->cookie);
            return $data;
     
        }
    }
    ?>
    
     
    
  • 相关阅读:
    JS函数
    函数与指针
    函数返回指针类型(strchr函数)
    二维数组求平均值(指针的使用)
    二维数组做函数参数传递
    指针与函数
    Ubuntu安装mysql步骤
    带参程序
    函数返回值是指针
    mystrcat
  • 原文地址:https://www.cnblogs.com/mengdejun/p/3375991.html
Copyright © 2020-2023  润新知