关于CURL的初步认识
前言:你知道?这个CURL可以做爬虫的工作但是仅限于小型的爬虫..............
(一) CURL的认识
下面我觉得用图片来展示curl比较直观:
所谓的curl就是客户端访问了服务器1,那么服务器1又模拟了服务客户端去访问了服务器2,然后拿到结果后一层层返回,并且curl以第三方的扩展库存在所以要用到必须要开启这个扩展.
(二)curl分类
分为get访问和post访问
(三)curl模拟get请求
<?php echo 't1.php<br/>'; //使用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 '<hr/>'; echo '哈哈哈哈哈,看的到我么?';
<?php #访问的第二个网站的代码 echo 't2.php<br/>'; 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实现获取
<?php include './request.php';//引入curl函数 class NewWeixin{ const appID = 'xxxxxxx';//开发者的appid const appsecret = 'xxxxxx';//开发者的加密密钥 #获取access_token的方法 public function getACToken(){ $filePath = __DIR__ . '/' . self::appID . '.txt';//存储accesstoken的文件 if( is_file($filePath) && filemtime($filePath)+7200>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();
IT这条路,当你懂得越多的时候,那么你不懂的也就会越多了.