首页后端开发其他后端知识在PHP中curl get请求的使用是什么样的

在PHP中curl get请求的使用是什么样的

时间2024-03-25 11:16:04发布访客分类其他后端知识浏览455
导读:这篇文章主要介绍了title,讲解详细,步骤过程清晰,对大家了解操作过程或相关知识有一定的帮助,而且实用性强,希望这篇文章能帮助大家,下面我们一起来了解看看吧。 curl介绍 curl是一个开源的网络链接库,支...
这篇文章主要介绍了title,讲解详细,步骤过程清晰,对大家了解操作过程或相关知识有一定的帮助,而且实用性强,希望这篇文章能帮助大家,下面我们一起来了解看看吧。

curl介绍

curl是一个开源的网络链接库,支持http, https, ftp, gopher, telnet, dict, file, and ldap 协议。之前均益介绍了python版本的pycurl https://www.jb51.net/article/221508.htm ,现在介绍怎么使用php版本的URL.

curl get请求

function curl_get($url){
    
 
   $header = array(
       'Accept: application/json',
    );
    
    $curl = curl_init();
    
    //设置抓取的url
    curl_setopt($curl, CURLOPT_URL, $url);
    
    //设置头文件的信息作为数据流输出
    curl_setopt($curl, CURLOPT_HEADER, 0);
    
    // 超时设置,以秒为单位
    curl_setopt($curl, CURLOPT_TIMEOUT, 1);
    
 
    // 超时设置,以毫秒为单位
    // curl_setopt($curl, CURLOPT_TIMEOUT_MS, 500);
    
 
    // 设置请求头
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
    
    //设置获取的信息以文件流的形式返回,而不是直接输出。
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    
    //执行命令
    $data = curl_exec($curl);

 
    // 显示错误信息
    if (curl_error($curl)) {
    
        print "Error: " . curl_error($curl);

    }
 else {
    
        // 打印返回的内容
        var_dump($data);
    
        curl_close($curl);

    }

}

curl post请求

// $url 是请求的链接
// $postdata 是传输的数据,数组格式
function curl_post( $url, $postdata ) {
    
 
   $header = array(
       'Accept: application/json',
    );
    
 
    //初始化
    $curl = curl_init();
    
    //设置抓取的url
    curl_setopt($curl, CURLOPT_URL, $url);
    
    //设置头文件的信息作为数据流输出
    curl_setopt($curl, CURLOPT_HEADER, 0);
    
    //设置获取的信息以文件流的形式返回,而不是直接输出。
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    
    // 超时设置
    curl_setopt($curl, CURLOPT_TIMEOUT, 10);
    
 
    // 超时设置,以毫秒为单位
    // curl_setopt($curl, CURLOPT_TIMEOUT_MS, 500);
    
 
    // 设置请求头
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
    
 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE );
    
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE );
    
 
    //设置post方式提交
    curl_setopt($curl, CURLOPT_POST, 1);
    
    curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);
    
    //执行命令
    $data = curl_exec($curl);

 
    // 显示错误信息
    if (curl_error($curl)) {
    
        print "Error: " . curl_error($curl);

    }
 else {
    
        // 打印返回的内容
        var_dump($data);
    
        curl_close($curl);

    }

}
    

常用参数

选项 将value设置为 备注
CURLOPT_AUTOREFERER TRUE时将根据Location:重定向时,自动设置 header 中的Referer:信息。
CURLOPT_BINARYTRANSFER 设为TRUE,将在启用CURLOPT_RETURNTRANSFER时,返回原生的(Raw)输出。 从 PHP 5.1.3 开始,此选项不再有效果:使用CURLOPT_RETURNTRANSFER后总是会返回原生的(Raw)内容。
CURLOPT_COOKIESESSION 设为TRUE时将开启新的一次 cookie 会话。它将强制 libcurl 忽略之前会话时存的其他 cookie。 libcurl 在默认状况下无论是否为会话,都会储存、加载所有 cookie。会话 cookie 是指没有过期时间,只存活在会话之中。
CURLOPT_CERTINFO TRUE将在安全传输时输出 SSL 证书信息到STDERR 在 cURL 7.19.1 中添加。 PHP 5.3.2 后有效。 需要开启CURLOPT_VERBOSE才有效。
CURLOPT_CONNECT_ONLY TRUE将让库执行所有需要的代理、验证、连接过程,但不传输数据。此选项用于 HTTP、SMTP 和 POP3。 在 7.15.2 中添加。 PHP 5.5.0 起有效。
CURLOPT_CRLF 启用时将Unix的换行符转换成回车换行符。
CURLOPT_DNS_USE_GLOBAL_CACHE TRUE会启用一个全局的DNS缓存。此选项非线程安全的,默认已开启。
CURLOPT_FAILONERROR 当 HTTP 状态码大于等于 400,TRUE将将显示错误详情。 默认情况下将返回页面,忽略 HTTP 代码。
CURLOPT_SSL_FALSESTART TRUE开启 TLS False Start (一种 TLS 握手优化方式) cURL 7.42.0 中添加。自 PHP 7.0.7 起有效。
CURLOPT_FILETIME TRUE时,会尝试获取远程文档中的修改时间信息。 信息可通过curl_getinfo()函数的CURLINFO_FILETIME选项获取。
CURLOPT_FOLLOWLOCATION TRUE时将会根据服务器返回 HTTP 头中的"Location: "重定向。(注意:这是递归的,"Location: "发送几次就重定向几次,除非设置了CURLOPT_MAXREDIRS,限制最大重定向次数。)。
CURLOPT_FORBID_REUSE TRUE在完成交互以后强制明确的断开连接,不能在连接池中重用。
CURLOPT_FRESH_CONNECT TRUE强制获取一个新的连接,而不是缓存中的连接。
CURLOPT_FTP_USE_EPRT TRUE时,当 FTP 下载时,使用 EPRT (和 LPRT)命令。 设置为FALSE时禁用 EPRT 和 LPRT,仅仅使用PORT 命令。
CURLOPT_FTP_USE_EPSV TRUE时,在FTP传输过程中,回到 PASV 模式前,先尝试 EPSV 命令。设置为FALSE时禁用 EPSV。
CURLOPT_FTP_CREATE_MISSING_DIRS TRUE时,当 ftp 操作不存在的目录时将创建它。
CURLOPT_FTPAPPEND TRUE为追加写入文件,而不是覆盖。
CURLOPT_TCP_NODELAY TRUE时禁用 TCP 的 Nagle 算法,就是减少网络上的小包数量。 PHP 5.2.1 有效,编译时需要 libcurl 7.11.2 及以上。
CURLOPT_FTPASCII CURLOPT_TRANSFERTEXT的别名。
CURLOPT_FTPLISTONLY TRUE时只列出 FTP 目录的名字。
CURLOPT_HEADER 启用时会将头文件的信息作为数据流输出。
CURLINFO_HEADER_OUT TRUE时追踪句柄的请求字符串。 从 PHP 5.1.3 开始可用。CURLINFO_的前缀是有意的(intentional)。
CURLOPT_HTTPGET TRUE时会设置 HTTP 的 method 为 GET,由于默认是 GET,所以只有 method 被修改时才需要这个选项。
CURLOPT_HTTPPROXYTUNNEL TRUE会通过指定的 HTTP 代理来传输。
CURLOPT_MUTE TRUE时将完全静默,无论是何 cURL 函数。 在 cURL 7.15.5 中移出(可以使用 CURLOPT_RETURNTRANSFER 作为代替)
CURLOPT_NETRC TRUE时,在连接建立时,访问~/.netrc文件获取用户名和密码来连接远程站点。
CURLOPT_NOBODY TRUE时将不输出 BODY 部分。同时 Mehtod 变成了 HEAD。修改为FALSE时不会变成 GET。
CURLOPT_NOPROGRESS TRUE时关闭 cURL 的传输进度。 Note: PHP 默认自动设置此选项为TRUE,只有为了调试才需要改变设置。
CURLOPT_NOSIGNAL TRUE时忽略所有的 cURL 传递给 PHP 进行的信号。在 SAPI 多线程传输时此项被默认启用,所以超时选项仍能使用。 cURL 7.10时被加入。
CURLOPT_PATH_AS_IS TRUE不处理 dot dot sequences (即 ../ ) cURL 7.42.0 时被加入。 PHP 7.0.7 起有效。
CURLOPT_PIPEWAIT TRUE则等待 pipelining/multiplexing。 cURL 7.43.0 时被加入。 PHP 7.0.7 起有效。
CURLOPT_POST TRUE时会发送 POST 请求,类型为:application/x-www-form-urlencoded,是 HTML 表单提交时最常见的一种。
CURLOPT_PUT TRUE时允许 HTTP 发送文件。要被 PUT 的文件必须在CURLOPT_INFILE和CURLOPT_INFILESIZE中设置。
CURLOPT_RETURNTRANSFER TRUE将curl_exec()获取的信息以字符串返回,而不是直接输出。
CURLOPT_SAFE_UPLOAD TRUE禁用@前缀在CURLOPT_POSTFIELDS中发送文件。 意味着@可以在字段中安全得使用了。 可使用CURLFile作为上传的代替。 PHP 5.5.0 中添加,默认值FALSE。 PHP 5.6.0 改默认值为TRUE。. PHP 7 删除了此选项, 必须使用 CURLFile interface 来上传文件。
CURLOPT_SASL_IR TRUE开启,收到首包(first packet)后发送初始的响应(initial response)。 cURL 7.31.10 中添加,自 PHP 7.0.7 起有效。
CURLOPT_SSL_ENABLE_ALPN FALSE禁用 SSL 握手中的 ALPN (如果 SSL 后端的 libcurl 内建支持) 用于协商到 http2。 cURL 7.36.0 中增加, PHP 7.0.7 起有效。
CURLOPT_SSL_ENABLE_NPN FALSE禁用 SSL 握手中的 NPN(如果 SSL 后端的 libcurl 内建支持),用于协商到 http2。 cURL 7.36.0 中增加, PHP 7.0.7 起有效。
CURLOPT_SSL_VERIFYPEER FALSE禁止 cURL 验证对等证书(peer's certificate)。要验证的交换证书可以在CURLOPT_CAINFO选项中设置,或在CURLOPT_CAPATH中设置证书目录。 自cURL 7.10开始默认为TRUE。从 cURL 7.10开始默认绑定安装。
CURLOPT_SSL_VERIFYSTATUS TRUE验证证书状态。 cURL 7.41.0 中添加, PHP 7.0.7 起有效。
CURLOPT_TCP_FASTOPEN TRUE开启 TCP Fast Open。 cURL 7.49.0 中添加, PHP 7.0.7 起有效。
CURLOPT_TFTP_NO_OPTIONS TRUE不发送 TFTP 的 options 请求。 自 cURL 7.48.0 添加, PHP 7.0.7 起有效。
CURLOPT_TRANSFERTEXT TRUE对 FTP 传输使用 ASCII 模式。对于LDAP,它检索纯文本信息而非 HTML。在 Windows 系统上,系统不会把STDOUT设置成二进制 模式。
CURLOPT_UNRESTRICTED_AUTH TRUE在使用CURLOPT_FOLLOWLOCATION重定向 header 中的多个 location 时继续发送用户名和密码信息,哪怕主机名已改变。
CURLOPT_UPLOAD TRUE准备上传。
CURLOPT_VERBOSE TRUE会输出所有的信息,写入到STDERR,或在CURLOPT_STDERR中指定的文件。

感谢各位的阅读,以上就是“在PHP中curl get请求的使用是什么样的”的内容了,通过以上内容的阐述,相信大家对在PHP中curl get请求的使用是什么样的已经有了进一步的了解,如果想要了解更多相关的内容,欢迎关注网络,网络将为大家推送更多相关知识点的文章。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 在PHP中curl get请求的使用是什么样的
本文地址: https://pptw.com/jishu/652743.html
PHP怎样限制登录次数,思路和方法是什么? 如何利用PHP做搜索功能,并红字显示搜索词?

游客 回复需填写必要信息