PHP CURL使用详解
什么是CURL
CURL是一个用来发送请求并获取数据的工具库,全称为“Client URL Library”。它支持各种协议,包括HTTP、FTP、TELNET等常用协议,熟练使用CURL能够实现丰富的功能,例如网页抓取、API调用、模拟登录等。
CURL的安装
在PHP中使用CURL需要安装CURL扩展。可以在终端输入下面命令来安装:
sudo apt install php-curl #ubuntu/debian系统
sudo yum install php-curl #centos系统
CURL的使用
在PHP代码中使用CURL,首先需要初始化CURL会话:
$ch = curl_init();
接下来,我们可以设置一些选项,例如请求的URL、请求的方法、请求的数据等:
curl_setopt($ch, CURLOPT_URL, "http://example.com/");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array('name' => 'Bob')));
然后,我们可以执行请求并获取返回的数据:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
最后,我们需要关闭CURL会话:
curl_close($ch);
CURL选项很多,下面将介绍常用的一些选项和示例:
CURLOPT_URL
请求的URL,可以是HTTP/HTTPS/FTP等协议。
curl_setopt($ch, CURLOPT_URL, "http://example.com/");
CURLOPT_USERAGENT
设置HTTP User-Agent头,用于抓取网页时伪装成浏览器访问。
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36");
CURLOPT_RETURNTRANSFER
将请求的结果以字符串返回,而不是直接输出。
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
CURLOPT_POST
设置为1表示请求使用POST方法。
curl_setopt($ch, CURLOPT_POST, 1);
CURLOPT_POSTFIELDS
设置请求的POST数据,可以是数组或字符串。
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array('name' => 'Bob')));
CURLOPT_HEADER
设置为1表示返回HTTP头信息。
curl_setopt($ch, CURLOPT_HEADER, 1);
示例代码
网页抓取
我们可以使用CURL抓取一个网页的HTML内容:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://example.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
调用API
我们可以使用CURL调用一个API接口,例如将一个JSON数据发送到服务器:
$data = array('name' => 'Bob', 'age' => 18);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://api.example.com/user/create");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
以上就是PHP CURL的使用详解,让我们能够更加快速简便地抓取网页和调用API接口。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP CURL使用详解 - Python技术站