A. php 使用 CURL 详解
使用PHP的CURL扩展进行HTTP请求发送,通常涉及以下步骤:
首先,初始化CURL连接句柄;
接着,设置CURL选项;
然后,执行请求并获取结果;
最后,释放CURL连接句柄。
以下是一个使用CURL发送HTTP请求的典型示例代码片段。
初始化和关闭CURL连接的函数分别是curl_init()和curl_close(),操作较为简便。
执行CURL请求的函数是curl_exec()。若请求成功,函数返回URL的响应数据;若出现错误,则返回FALSE。注意,使用全等号判断输出是否为FALSE,以区分返回空串和出错的情况。
curl_setopt()函数是CURL库中最重要的函数,可以通过设置CURL选项来自定义HTTP请求。在示例代码中,使用了以下三个重要选项:
CURLOPT_URL:指定请求的URL;
CURLOPT_RETURNTRANSFER:设置为1,使curl_exec()函数的返回值是URL的返回字符串,而非将返回字符串输出到标准输出;
CURLOPTLOPT_HEADER:设置为0,表示不返回HTTP头部信息。
PHP官方网站(php.net/manual/en/funct...)提供了CURL支持的所有选项列表。
使用curl_getinfo()函数可以获取CURL请求输出的相关信息。该函数返回一个关联数组,包含如网络地址、内容编码、HTTP状态码等数据。
curl_getinfo()函数还有一个可选参数opt,通过设置常量,可以返回指定字段的信息。例如,设置opt为CURLINFO_TOTAL_TIME,则只返回总传输消耗的时间。
使用CURL发送GET请求时,需要拼装格式正确的URL。PHP提供了http_build_query函数,用于将关联数组转换为GET请求字符串。结合CURL发送HTTP请求的一般流程,可以创建一个发送GET请求的函数。
使用CURL发送POST请求时,可以通过设置CURLOPT_POSTFIELDS选项,将POST字符串数据放在请求正文中。同时,设置CURL_POST为true,标识请求为POST请求。在POST请求中,也可以传输GET数据,只需在URL中拼装GET请求数据即可。
B. PHP如何使用cURL设置Get和Post请求
PHP使用cURL设置Get和Post请求的方法:首先初始化【curl_init()】,并设置变量;然后执行并获取结果【curl_exec()】;最后释放cURL句柄【curl_close()】。
【相关学习推荐:php图文教程】
PHP使用cURL设置Get和Post请求的方法:
1.cURL介绍
cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 cURL 库。本文将介绍 cURL 的一些高级特性,以及在PHP中如何运用它。
2.基本结构
在学习更为复杂的功能之前,先来看一下在PHP中建立cURL请求的基本步骤:
(1)初始化
curl_init()
(2)设置变量
curl_setopt()最为重要,一切玄妙均在此。有一长串cURL参数可供设置,它们能指定URL请求的各个细节。要一次性全部看完并理解可能比较困难,所以今天我们只试一下那些更常用也更有用的选项。
(3)执行并获取结果
curl_exec()
(4)释放cURL句柄
curl_close()
3.cURL实现Get和Post
3.1 Get方式实现
代码如下:
//初始化
$ch = curl_init();
//设置选项,包括URL
curl_setopt($ch, CURLOPT_URL, "https://www.jb51.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
//执行并获取HTML文档内容
$output = curl_exec($ch);
//释放curl句柄
curl_close($ch);
//打印获得的数据
print_r($output);3.2 Post方式实现
代码如下:
$url = "http://localhost/web_services.php";
$post_data = array ("username" => "bob","key" => "12345");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// post数据
curl_setopt($ch, CURLOPT_POST, 1);
// post的变量
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$output = curl_exec($ch);
curl_close($ch);
//打印获得的数据
print_r($output);以上方式获取到的数据是json格式的,使用json_decode函数解释成数组。
$output_array = json_decode($output,true);如果使用json_decode($output)解析的话,将会得到object类型的数据。
相关学习推荐:php编程(视频)