有关PHP的CURL功能的基本用法

1.相信有很多人很多时候跟我一样,写代码习惯了从搜索引擎上去搜索粘贴,忘了寻其本意。

在开发中,我很多次都用到了Curl,但是每次都是去复制粘贴。其实Curl的基本用法也很简单,主要也就是这几个函数的使用。

$ch = curl_init(); // 创建一个新的CURL资源赋给变量$ch
curl_setopt($ch, CURLOPT_URL, $url); // 设置URL
$response = curl_exec($ch); // 执行,获取URL并输出到浏览器
curl_close($ch); // 释放资源

如果我们希望获取内容但不输出,可以使用 CURLOPT_RETURNTRANSFER 参数,并设置其值为非0或者true值。代码如下:curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

我们可以通设置函数curl_setopt()的不同参数,可以获得不同的结果,这也是CURL扩展的强大之处。curl_setopt()函数的常用参数选项具体可查阅官方文档。

贴两个常用示例

get请求示例

public function httpGet(string $url = ‘‘)
    {
        // 记录请求信息的日志
        // todo

        try {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_HEADER, 0);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_TIMEOUT, 60);
            //https 请求
            if (strlen($url) > 5 && strtolower(substr($url, 0, 5)) == "https") {
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
            }
            $response = curl_exec($ch);
            $errorCode = curl_errno($ch);
            curl_close($ch);
            if (!empty($errorCode)) {
                // 可记录错误码日志
                return null;
            }
            // 记录返回结果日志
            return $response;
        } catch (\Exception $e) {
            $errorLog = [
                ‘msg‘ => $e->getMessage(),
                ‘trace‘ => $e->getTraceAsString(),
                ‘data‘ => [
                    ‘url‘ => $url,
                ]
            ];
            // 记录错误日志
            return null;
        }
    }

post请求示例

public function httpPost(string $url = ‘‘, array $data = [])
    {
        // 记录请求信息的日志
        // todo

        try {
            $jsonData = json_encode($data);
            $curl = curl_init();
            curl_setopt($curl, CURLOPT_URL, $url);
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $jsonData);
            curl_setopt($curl, CURLOPT_HEADER, 0);
            curl_setopt($curl, CURLOPT_TIMEOUT, 60);
            curl_setopt($curl, CURLOPT_HTTPHEADER, [
                ‘Content-Type: application/json; charset=utf-8‘,
                ‘Content-Length:‘ . strlen($jsonData)
            ]);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
            //https 请求
            if (strlen($url) > 5 && strtolower(substr($url, 0, 5)) == "https") {
                curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
            }
            $result = curl_exec($curl);
            $errorCode = curl_errno($curl);
            curl_close($curl);
            if (!empty($errorCode)) {
                // 可记录错误码日志
                return null;
            }
            // 记录返回结果日志
            return json_decode($result, true);
        } catch (\Exception $e) {
            $errorData = [
                ‘msg‘ => $e->getMessage(),
                ‘trace‘ => $e->getTraceAsString(),
                ‘data‘ => [
                    ‘url‘ => $url,
                    ‘postData‘ => $data
                ]
            ];
            // 记录错误日志
            return null;
        }
    }

原文地址:https://www.cnblogs.com/liancheng/p/10248088.html

时间: 2024-11-13 08:17:24

有关PHP的CURL功能的基本用法的相关文章

node.js实现CURL功能

PHP中的CURL功能很好实现,直接四五行代码封装一下就OK了.node.js中如何实现CURL的功能呢,下面详细介绍. 这里需要用到request这个库,所以先安装此包: npm install request 安装下来之后, 就是代码实现的问题了.示例代码如下(只实现了POST方法): var request = require('request'); request.post( { url:'http://hovertree.com:9095/phpTest.php', form:{ us

PHP开启cURL功能

PHP开启cURL功能 在php.ini中开启 确定php扩展目录下有php_curl.dll类库 在php.int中找到扩展库所在目录 判断目录下是否有php_curl.dll 没有的话去搜索下载 apache的配置文件加载相关类库 重启apache服务器 验证 直接打印出php的信息 完 GoodLuck

curl命令的基本用法

我们知道在linux环境下,可以调用curl下载网页. 但curl有些高级的应用,只需要几行命令行,可能比你写多行php.python.C++的程序要快些. 下面从问题驱动的角度来谈谈curl的用法 1. 下载页面,保存到文件 curl www.baidu.com 会将网页数据输出到标准输出终端,如要保存到文件,则需要利用 -o/--output <file> Write output to <file> instead of stdout. 2. 批量下载多个页面 通过{} 和[

fiddler几种功能强大的用法

参考网址: http://caibaojian.com/fiddler.html http://www.cnblogs.com/tangdongchu/p/4178552.html 1.fiddler过滤会话 问题:每次使用Fiddler, 打开一个网站,都能在Fiddler中看到几十个会话,看得眼花缭乱. 期望:只想抓取自己想要的请求 步骤: 在Filers面板中勾选“Use Filters”,并在Hosts区域,设置以下三个选项: 1).第一项有三个选项,分别是“No zone filter

cURL -- curl_setopt()函数的用法

刚刚看到用cURL实现GET和POST请求的方法,发现自己完全不了解.去看文档发现curl_setopt()这个函数的参数是在太多了,于是干脆发在博客里有时间了慢慢看.下面是官方文档的原文: 参数 ch 由 curl_init() 返回的 cURL 句柄. option 需要设置的CURLOPT_XXX选项. value 将设置在option选项上的值. 以下 option 参数的 value应该被设置成 bool 类型: 选项 将 value 设置为 备注 CURLOPT_AUTOREFERE

Mysql-自带的一些功能,基本用法(视图,触发器,事务,存储过程,函数,流程控制)

一. 视图 二. 触发器 三. 事务 四. 存储过程 五. 函数 六. 流程控制 一 .视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦

PHP中的常见魔术方法功能作用及用法实例

概述 在面向对象编程中,PHP提供了一系列的魔术方法,这些魔术方法为编程提供了很多便利.PHP中的魔术方法通常以__(两个下划线)开始,并且不需要显示的调用而是由某种特定的条件出发.这篇文章简单总结了PHP中提供的魔术方法. 开始之前 在总结PHP的魔术方法之前先来定义两个类,以便后边示例使用: 复制代码代码如下: <?phpclass Device {    public $name;               public $battery;            public $data

fiddler几种功能强大的用法(二)

参考网址:http://blog.rekfan.com/articles/228.html http://www.cnblogs.com/tugenhua0707/p/4637771.html http://blog.csdn.net/xia_xia0919/article/details/50518629 1.直接在fiddler上配置host,点击tools>>hosts,在里面填写自己想要设置的host即可 2.Fiddler显示请求服务器的ip及系统环境的配置方法: 1)打开Rules

跟着百度学PHP[17]-PHP扩展CURL的用法详解

实现的功能: 1.实现远程获取和采集内容2.实现PHP 网页版的FTP上传下载3.实现模拟登陆:去一个邮件系统,curl可以模拟cookies4.实现接口对接(API),数据传输等:通过一个平台发送短信啊,抓取和传递所传输的信息.5.实现模拟Cookie等:登陆的状态下才可以操作一些属性. 如何使用CURL功能:默认情况加PHP是不支持CURL的,需要在php.ini中开启该功能;extension=php_curl.dll前面的分号去掉