15.1 curl 的使用步骤
本书特别新手的一点,是将重要操作的核心思路都为大家提供了。在数据库、图片、文件上传我们都把真正的步骤。以及步骤如何组何成为我们的代码和实现过程都做过讲解。
我们将 curl 的步骤分为以下 7 步:
- 初使化 curl 资源
- 参数设置请求的协议地址
- 参数设置是否返回请求结果
- 设置发送数据(无发送数据可不设置)
- 其他的参数信息设置(按实际工作需要决定)
- 执行或执行得到返回结果
- 关闭 curl 资源
我们为了更好的让大家学习和入门,将第 2 步至第 5 步本应该归为一步的插成了 4 个步骤。
第二步至第五步本质上,应该统成为 curl 参数设置。
所有 curl 设置参数设置都是通过 curl_setopt 都完成
curl_setopt 这一步最为重要,一切玄妙均在此。
curl_setopt 这一步完成了包括连接、参数和一切请求的细节设置。要一次性全部看完并理解可能比较困难,所以我们只试一下那些更常用也更有用的选项。
我们为了更好的入门。并且在 php 中我们用的最多的是 http 请求。因此,我们将一些不需要大家使用到的全部不作讲解。
如果感兴趣的朋友可以参考 curl_setopt 中复杂的参数设置。
地址如下: http://php.net/manual/zh/function.curl-setopt.php
一、初使化 curl 资源
这只有一句话,就是使用的是 curl_init 函数。这个参数法面要传入任何参数。返回 curl 的操作资源。
因为,我们在后面是通过 curl_setopt 向 curl 的操作资源变量压入数据的。
例:
$ch = curl_init();
二、参数设置请求的协议地址
curl_setopt 函数的详细使用如下:
类型 | 说明 |
---|---|
函数 | curl_setopt |
参数 1 | curl 资源变量 |
参数 2 | curl 参数选项 |
参数 3 | curl 参数值 |
CURLOPT_URL
这个参数选项规定了请求的 url 地址。
curl_setopt($ch, CURLOPT_URL, "http://www.phpxy.com");
三、参数设置是否返回请求结果
我们希望 curl 请求后返回对应的结果。我们要得到对应的结果,也需要设置一个参数,这个参数名为:CURLOPT_RETURNTRANSFER。
若需要返回值即为 1。不需请求后返回的结果可设置为 0。
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
四、设置发送数据
如果是 get 请求,我们不需要设置发送的参数。在 post 等请求的时候,我们需要设置发送方法为 post 方法。并设置发送的数据。
CURLOPT_POST 值设为 1 是使用 POST 方法,0 为不使用 POST 方法
CURLOPT_POSTFIELDS 设置传递的数据
//声明使用 POST 方式来进行发送
curl_setopt($ch, CURLOPT_POST, 1);
//发送什么数据呢
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
五、其他的参数信息设置
如果是 https,有的时候我们需要忽略 https 的安全证书。
CURLOPT_SSL_VERIFYPEER 和 CURLOPT_SSL_VERIFYHOST 两个参数改为 false 即忽略了证书。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
CURLOPT_HEADER 这个参数又决定是是否处理 http 的头信息,我们不想接收处理的话可将这个值设置为 0。
curl_setopt($ch, CURLOPT_HEADER, 0);
此外,我们还可以设置请求的超时时间,参数为:CURLOPT_TIMEOUT。
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
其他参数非常多,我们在之前讲过,如果你想了解更多的内容可以访问:
地址如下: http://php.net/manual/zh/function.curl-setopt.php
六、执行或执行得到返回结果
我们第三步中,将 CURLOPT_RETURNTRANSFER 参数中将值设为 1。如果执行的结果有数据。使用 curl_exec 执行后,会将结果返回给$output 变量。
$output = curl_exec($ch);
七、关闭 curl 资源
关闭 curl 资源。因为资源类型,我们反复强调过,有打开就有关闭。
如果不需要使用,使用 curl_close 关闭后立刻释放内存。
curl_close($ch);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论