前言:你知道?这个CURL可以做爬虫的工作但是仅限于小型的爬虫..............
(一) CURL的认识
下面我觉得用图片来展示curl比较直观:
所谓的curl就是客户端访问了服务器1,那么服务器1又模拟了服务客户端去访问了服务器2,然后拿到结果后一层层返回,并且curl以第三方的扩展库存在所以要用到必须要开启这个扩展.
(二)curl分类
分为get访问和post访问
(三)curl模拟get请求
';//使用curl模拟get请求#1. 初始化curl连接$ch = curl_init();//请求的新的链接地址$url = 'http://969m2z.natappfree.cc/t2.php?name=小风风&age=18&height=1.9';#2. 设置curl选项// 设置请求URL地址curl_setopt($ch,CURLOPT_URL,$url);// 不获取header头信息curl_setopt($ch,CURLOPT_HEADER,0);// 结果不直接返回到终端curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);// 设置curl不进行证书的检测curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);// 超时时间 秒curl_setopt($ch,CURLOPT_TIMEOUT,10);// 设置请求的浏览器curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36');#3. 执行curl$data = curl_exec($ch);#4. 关闭curl连接curl_close($ch);var_dump($data);echo '
';echo '哈哈哈哈哈,看的到我么?';
';var_dump( $_GET );
(四)curl的post请求
//在实现get请求的基础上需要增加的设置项: // 发起POST请求curl_setopt($ch,CURLOPT_POST,1);// post发送的数据,注意http_build_query可以将$data数组数据格式化成http传输数据的格式curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($data));
(五)用curl实现获取
time()){ //如果存储accesstoken的文件存在并且最后修改时间没有超过2个小时,说明accesstoken还在有效期内 return file_get_contents($filePath);//那么,直接从文件中读取出accesstoken } //能够执行到这里说明要么文件不存在,要么文件存在但是accesstoken过期了 //获取access_token的接口 $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s'; $url = sprintf($url, self::appID, self::appsecret); $json = curl($url); $data = json_decode($json);//因为得到的结果将会是一个json字符串,所以要将这个字符串转换成一个数组 //将accesstoken覆盖写入进文件 file_put_contents($filePath, $data->access_token); //调用curl函数请求接口api return $data->access_token; }}$obj = new NewWeixin;echo $obj->getACToken();