美洲杯波胆_美洲杯波胆赔率
做最好的网站
来自 计算机教程 2019-08-15 10:53 的文章
当前位置: 美洲杯波胆 > 计算机教程 > 正文

PHP的cURL扩展库使用详解男篮世界杯波胆

cURL是与各种的服务器使用各种类型的协议进行连接和通讯的工具。它是一个强大的库支持http、https、ftp、telnet、file等协议,同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传、HTTP 基于表单的上传、代理、cookies和用户名 密码的认证。

在还没有接触curl的时候,相信大家在获取网页内容的时,使用得最多的一个函数就是:file_get_contents(),但是它的可控制性不够灵活,无法处理错误情况,对于各种复杂情况的采集更是显得有点无能为力。因此,本文将为你介绍另外一种工具:cURL的使用方法,在后面也还会给出相关的几个案例,这些都是你使用file_get_contents()无法做到的。

可能大家也用过file_get_contents()函数,但是这种做法如处理coockies、验证、表单提交、文件上传等等就力不从心了。

为了更好的理解下面的内容,这里先给出一个curl的最简单的案例

使用cURL的基本方法如下: 首先修改php.ini文件的设置,找到php_curl.dll,取消下在的注释extension=php_curl.dll,因为php默认是不开启cURL的。

然后就是基本步骤:
1.初始化
2.设置变量 (curl_setopt)
3.执行并获取结果 (curl_exec)
4.输出
php实例如下:

入门案例:

复制代码 代码如下:

$url = "http://nosee123.com/test_post.php";

$ch = curl_init; //初始化一个cURL会话

curl_exec; //执行一个cURL会话

curl_close; //关闭一个cURL会话

<?php
// 初始化
$ch = curl_init();
// 设置选项,包括URL
curl_setopt($ch, CURLOPT_URL,"http://www.baidu.com");
//是否将参数返回到页面中(0表示是1表示否)
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER,0);
//执行并获取HTML文档内容
$output = curl_exec($ch);
// 关闭url
curl_close($ch);
?>

该案例的执行结果就是把$url的网页内容输出到你的浏览器上,其实这个案例的效果和使用file_get_contents()的结果是一样的,这是因为它没有设置任何的参数。但cURL的功能远远不止这些,下面我们开始讲解cURL更详细的使用方法。

您可能感兴趣的文章:

cURL是一个可以使用URL的语法模拟浏览器来传输数据的工具库,libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名 密码的认证。

注意:在使用cURL库之前,记得要先将你的配置文件中打开的你cURL模块,可以使用phpinfo()查看curl模块是否开启,如没有开启就直接使用相关的方法则会报错。

使用 cURL 函数的基本思想是先使用curl_init() 初始化 cURL会话,接着可以通过 curl_setopt() 设置需要的全部选项,然后使用 curl_exec()来执行会话,当执行完会话后使用curl_close()关闭会话。

简单来说,使用cURL完成简单的请求主要分为以下四个步骤:

//初始化cURL

$url = "http://nosee123.com/test_post.php";

$ch = curl_init; //初始化一个cURL会话

//设置URL和相应的选项

//将curl_exec()获取的信息以字符串返回,而不是直接输出。

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

//抓取URL并把它传递给浏览器

//由于步骤2对CURLOPT_RETURNTRANSFER的设置,curl_exec()不会直接输出内容

$str = curl_exec; //执行一个cURL会话

//关闭cURL资源,并且释放系统资源

curl_close; //关闭一个cURL会话

echo $str; //输出步骤3获取的页面内容

上面的4个步骤将会把获取到的网页内容输出,这是使用cURL最基本的四个步骤。

cURL之所以强大,只要是体现在它的第二个步骤中。你可以通过curl_setopt灵活地设置请求选项,更多的参数设置查看官网:http://php.net/manual/zh/function.curl-setopt.php

官方上罗列的是所有的参数列表,全部都记住也没有什么必要。然而实际开发中,我们常用的也就来来去去那几个,所以在这我也顺便把常用的几个都详细讲讲,这样也方便我们更好的快速的用到实际开发中。但建议有时间的话最好把官网上的都看一篇,这样至少自己心里也有个底,知道里面有些什么方法,当真正需要的时候也方便过来查找。

curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);//将curl_exec()获取的信息以字符串返回,而不是直接输出。

curl_setopt($ch, CURLOPT_HEADER,false);//不输出头文件,如果设为true,获得的网页源代码最前边会带有'HTTP/1.1 200 OK'等内容

curl_setopt($ch, CURLOPT_FILE, $fp);//设置输出文件,默认为STDOUT 。

curl_setopt($ch, CURLOPT_POST, 1);// 设置请求为post类型

curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);// 添加post数据到请求中

除了上面基本的4个步骤用到的4个函数,cURL还提供了其他很多实用的函数,如curl_error、curl_getinfo等。

在执行一个cURL请求后,你也可以使用curl_getinfo获取该请求的具体信息:

curl_exec;

$curl_info= curl_getinfo;

echo "收到的http回复的code为: {$curl_info['http_code']}";

上述$curl_info是一个关联数组,可以从中获取很多的具体请求信息。

参考:http://php.net/manual/zh/function.curl-getinfo.php

$response = curl_exec;

if ($response === FALSE) {

echo "cURL 具体出错信息: " . curl_error;

}

注意了,在做上述判断时务必要使用===,因为请求的回复可能是空字符串,curl在请求出错的情况下回返回FALSE值,所以我们必须使用===,而不是==

参考:http://php.net/manual/zh/function.curl-error.php

本文由美洲杯波胆发布于计算机教程,转载请注明出处:PHP的cURL扩展库使用详解男篮世界杯波胆

关键词: