Code前端首页关于Code前端联系我们

PHP 使用curl 检索网页内容

terry 2年前 (2023-09-29) 阅读数 53 #PHP
文章标签 PHP

1。简介

curl 是一个与 Web 服务器通信的工具。它支持HTTP、HTTPS、FTP和TELNET等协议,可以发送GET、POST、PUT、DELETE和OPTIONS等常见请求方法。 PHP 提供了使用curl 函数进行Web 通信的功能,可以轻松地从远程服务器检索内容。

2。使用curl获取网页内容

按照基本步骤使用curl获取网页内容:

  1. 底座卷发手柄
  2. 设置curl设置,例如设置请求的URL、请求方法、请求头等。
  3. 执行curl请求并获取响应内容
  4. 合上手柄

3。代码示例

以下是可用于通过curl获取网页内容的示例代码:

$url = 'https://example.com'; // 要获取内容的网页URL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); // 设置要请求的URL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 将响应内容以字符串形式返回
$response = curl_exec($ch); // 执行curl请求,并获取响应内容
curl_close($ch); // 关闭curl句柄
echo $response; // 输出响应内容

4。将请求标题设置为

某些网站可能需要特殊的请求标头才能正确响应。例如,某些API需要在请求标头中指定授权。以下是设置请求头的示例代码:

$url = 'https://api.example.com/user/123';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  'Authorization: Bearer abc123', // 设置Authorization信息
  'Content-Type: application/json' // 设置请求Content-Type
));
$response = curl_exec($ch);
curl_close($ch);
echo $response;

5。发送 POST 请求

除了检索网页内容之外,curl 还可以发送 POST 请求。下面是使用curl发送POST请求的示例代码:

$url = 'https://api.example.com/user';
$data = array(
  'name' => 'John',
  'age' => 30
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true); // 设置请求方法为POST
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); // 设置POST请求数据
$response = curl_exec($ch);
curl_close($ch);
echo $response;

6。发送PUT、DELETE等请求到

除了发送GET和POST请求外,curl还支持发送PUT、DELETE、OPTIONS等请求方法。以下是使用curl发送PUT请求的示例代码:

$url = 'https://api.example.com/user/123';
$data = array(
  'name' => 'John',
  'age' => 30
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); // 设置请求方法为PUT
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); // 设置PUT请求数据
$response = curl_exec($ch);
curl_close($ch);
echo $response;

7。 HTTPS 和 SSL 验证

如果您想通过curl接收HTTPS网页内容,需要进行SSL验证。以下是使用自签名 SSL 证书通过 HTTPS 访问网站的示例代码:

$url = 'https://example.com';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 关闭SSL验证
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 关闭SSL验证
$response = curl_exec($ch);
curl_close($ch);
echo $response;

8。总结

curl是一个非常强大的工具,可以轻松执行Web内容获取、API交互等Web通信功能。我们可以利用PHP内置的curl函数轻松与远程服务器进行通信,同时我们可以根据具体需求设置不同的选项,使得curl更加灵活实用。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门