前言:你知道?这个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实现获取access_token(这个是调用公众号唯一的凭证有效期2小时)

<?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();

关于CURL的初步认识的更多相关文章

  1. PHP curl之爬虫初步

    php的curl可以实现模拟http的各种请求,这也是php做网络爬虫的基础,也多用于接口api的调用. 这个时候有人就要发问了:为什么你特么不用file_get_contents? curl的性能比 ...

  2. 初步了解 cURL

    今天需要用PHP模拟post请求,查了查资料,了解到cURL.看了一篇博客,写的很详细,就转载了,与大家分享.[原文链接] 什么是cURL?可能还有很多同学没有听说过这个工具,我先来给大家简单介绍下什 ...

  3. Docker初步认识安装和简单实例

    前话 问题 开发网站需要搭建服务器环境,FQ官网下载软件包,搭建配置nginx,apache,数据库等.官网没有直接可用的运行版本,担心网络流传的非官方发布软件包不安全还得自行编译官方源码安装,忘记步 ...

  4. 关于在框架中使用curl的思考,以及,curl其实很好用

    初步猜想: 在接触到框架文档的第一阶段时,会觉得控制器调用模型就是一件很简单的事,tp中用D方法或者M方法来实例化模型,laravel中用命名空间来加载模型,CI中用$this->load-&g ...

  5. curl支持HTTP和https

    设计流程 基于curl工具实现https/http,设计初步流程为:linux平台验证→→交叉移植arm板. linux系统下调试http和https 1.1 Linux安装curl 输入命令:sud ...

  6. ant gradle curl等工具原理以及使用记录

    1.ant是早一些的java 项目配置管理工具. 2.gradle是比maven还新的项目配置管理工具. 3.curl可以方便进行网络测试.curl可以方便用来http请求测试,支持各种命令,从这个角 ...

  7. 初步理解require.js模块化编程

    初步理解require.js模块化编程 一.Javascript模块化编程 目前,通行的Javascript模块规范共有两种:CommonJS和AMD. 1.commonjs 2009年,美国程序员R ...

  8. 转:CURL库在程序中的运用浅析

    CURL库在程序中的运用浅析-nk_ysg-ChinaUnix博客 http://blog.chinaunix.net/uid-22476414-id-3286638.html 这个目录的文章转载fr ...

  9. curl测试dns解析时间及tcp连接时间

    1.用Linux下的curl命令测量网络请求(分号是分隔符,可以是其他符号): curl -o /dev/null -s -w %{time_connect}:%{time_starttransfer ...

随机推荐

  1. Basic remains POJ - 2305 同余模 高精度处理

    题意 给出B(10以内大于0)进制下 p (1000位以内)和m(9位以内) 求 p%m 在b进制下等于什么 思路: 可以计算   1e9不会溢出Int所以m在int值以内  先求m  要处理p  每 ...

  2. win10系统同时安装python2.7和python3.6

    我是先在本机上安装的python3.6.5,因为要学习一个框架,但是这个框架只支持python2,所以我又安装了python2.7.15,并且配置到系统环境变量 环境变量配置了python3.6.5的 ...

  3. CCPC-Wannafly Winter Camp Day1 (Div2, onsite) A B C E F I J

    A 机器人 链接:https://www.cometoj.com/contest/7/problem/A?problem_id=92 思路: 分两大类讨论: 1. B区没有点: (1)点都在起点左边 ...

  4. 【CodeForces 730H】Delete Them

    BUPT 2017 summer training (for 16) #1E 题意 找到匹配要删除的文件名们但不匹配其它文件名们的表达式.其中?匹配所有字符,其它字符匹配本身. 题解 如果某个位置出现 ...

  5. Java和操作系统交互细节

    结合 CPU 理解一行 Java 代码是怎么执行的 根据冯·诺依曼思想,计算机采用二进制作为数制基础,必须包含:运算器.控制器.存储设备,以及输入输出设备,如下图所示. enter image des ...

  6. Python数据采集分析告诉你为何上海二手房你都买不起

    感谢关注Python爱好者社区公众号,在这里,我们会每天向您推送Python相关的文章实战干货. 来吧,一起Python. 对商业智能BI.大数据分析挖掘.机器学习,python,R等数据领域感兴趣的 ...

  7. 外围功能电路控制 LET′S TRY“嵌入式编程”: 4 of 6

    外围功能电路控制 LET′S TRY“嵌入式编程”: 4 of 6 本连载讲解作为嵌入式系统开发技术人员所必需具备的单片机的基础知识. 在<单片机入门(1)-(3)>中,我们一起学习了单片 ...

  8. 2018 ICPC 焦作网络赛 E.Jiu Yuan Wants to Eat

    题意:四个操作,区间加,区间每个数乘,区间的数变成 2^64-1-x,求区间和. 题解:2^64-1-x=(2^64-1)-x 因为模数为2^64,-x%2^64=-1*x%2^64 由负数取模的性质 ...

  9. hdu 2149 (巴什博奕)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2149 Problem Description 虽然不想,但是现实总归是现实,Lele始终没有逃过退学的 ...

  10. OO第二阶段纪实

    $ 0 写在前面 往往是那些令人格外痛苦的经历,会带给人以最快的成长.转眼间,半个学期的时间过去了,时间匆匆,不管之前对这几次充满了怎样的畏惧,在身边朋友们的帮助和努力下,我也渐渐度过了一个个难关.回 ...