我的编程空间,编程开发者的网络收藏夹
学习永远不晚

使用 PHP 的 cURL GET 请求

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

使用 PHP 的 cURL GET 请求

在网络上,主要是 HTTPS,我们使用 GET 请求来获取特定的资源表示。为了获取数据,使用了 GET 方法。

特别是在 API 和 Web 抓取场景中,开发人员使用特定于语言的方法。我们使用 cURL 函数来处理 PHP 中的 GET 请求。

cURL 库处理从初始化、连接设置和传输到资源返回的操作。为了实现所有这些操作,可以使用内置函数,例如 curl_close()curl_init()curl_exec()

本文讨论了 cURL GET 请求的不同用例以及实现它的相应函数。


使用 curl_init()curl_setopt() 在 PHP 中获取请求

从另一个服务器或用户获取请求的典型格式涉及使用以下基本功能。


curl_init(); // initializes a cURL session
curl_setopt(); // changes the cURL session behavior with options
curl_exec(); // executes the started cURL session
curl_close(); // closes the cURL session and deletes the variable made by curl_init();

你将看到本文中的所有四个函数以及你将使用 cURL 库编写的大部分 GET 请求代码。

现在,对于一些示例用法,我们将为变量 $url 分配我们要从中获取请求的站点的 URL,并使用 curl_init() 函数启动 cURL 会话。之后,我们指定在指定 URL 上执行 cURL 传输的选项。

第一个 curl_setopt() 函数语句包含带有 $url 变量赋值的 URL to fetch 选项。第二个 curl_setopt() 函数语句包含以字符串形式返回传输选项,包含一个布尔值。


<?php

$url = "https://reqbin.com/echo";

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

//for debug only!
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

$resp = curl_exec($curl);
curl_close($curl);
var_dump($resp);

?>

上述 PHP 代码的输出如下。

在 PHP 中使用 curl_init 和 curl_setopt 获取请求


在 PHP 中将 cURL 与 API (JSON) 结合使用

通常,当与 API 交互时,数据响应通常是 JSON 并使用 cURL 函数,我们可以使用 curl_getinfo()json_encode() 函数以属性值对和数组格式正确处理这些数据对象,其中。

在这里,我们将与演示 User API 进行交互,使用 cURL 库获取 JSON 数据,并使用适当的函数对 JSON 文件进行编码。

  1. 初始化 URL 变量和 cURL 会话。

    $url = 'https://jsonplaceholder.typicode.com/users';
    // Sample example to get data.
    $resource = curl_init($url);
    
  2. 设置 cURL 选项和信息变量。

    curl_setopt($resource, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($resource);
    $info = curl_getinfo($resource);
    $code = curl_getinfo($resource, CURLINFO_HTTP_CODE);
    
  3. 调试以检查响应状态代码(可选步骤),但你应该看到 200

    echo $result.'<br>';
    echo "<pre>";
    print_r($info);
    echo "</pre>";
    
    // Get response status code
    echo "<pre>";
    print_r($code);
    echo "</pre>";
    
  4. 关闭 cURL 会话以更好地管理资源。

    curl_close($resource);
    
  5. 创建数组模板来存储通过 JSON 从 API 获取的数据。

    // set_opt_array
    $user = [
    	'name' => 'John Doe',
    	'username' => 'john',
    	'email' => 'john@example.com'
    ];
    
  6. 使用 curl_init()curl_setopt_array() 使用所有重要选项处理从 URL 解析的 JSON 数据。

    $resource = curl_init();
    curl_setopt_array($resource, [
    	CURLOPT_URL => $url,
    	CURLOPT_RETURNTRANSFER => true,
    	CURLOPT_POST => true,
    	CURLOPT_HTTPHEADER => ['content-type: application/json'],
    	CURLOPT_POSTFIELDS => json_encode($user),
    ]);
    
  7. 分别使用 curl_exec()curl_close() 函数执行初始化的 cURL 会话和关闭 cURL 会话并释放所有资源。但是,在 PHP 8.0.0 及更高版本中,curl_close() 函数无效。

    $result = curl_exec($resource); // creates and returns result
    curl_close($resource);
    echo $result;
    

代码的输出将产生下面的 PHP 多维数组。


[
  {
    "id": 1,
    "name": "Leanne Graham",
    "username": "Bret",
    "email": "Sincere@april.biz",
    "address": {
      "street": "Kulas Light",
      "suite": "Apt. 556",
      "city": "Gwenborough",
      "zipcode": "92998-3874",
      "geo": {
        "lat": "-37.3159",
        "lng": "81.1496"
      }
    },
    "phone": "1-770-736-8031 x56442",
    "website": "hildegard.org",
    "company": {
      "name": "Romaguera-Crona",
      "catchPhrase": "Multi-layered client-server neural-net",
      "bs": "harness real-time e-markets"
    }
  },
  {
    "id": 2,
    "name": "Ervin Howell",
    "username": "Antonette",
    "email": "Shanna@melissa.tv",
    "address": {
      "street": "Victor Plains",
      "suite": "Suite 879",
      "city": "Wisokyburgh",
      "zipcode": "90566-7771",
      "geo": {
        "lat": "-43.9509",
        "lng": "-34.4618"
      }
    },
    "phone": "010-692-6593 x09125",
    "website": "anastasia.net",
    "company": {
      "name": "Deckow-Crist",
      "catchPhrase": "Proactive didactic contingency",
      "bs": "synergize scalable supply-chains"
    }
  },
  {
    "id": 3,
    "name": "Clementine Bauch",
    "username": "Samantha",
    "email": "Nathan@yesenia.net",
    "address": {
      "street": "Douglas Extension",
      "suite": "Suite 847",
      "city": "McKenziehaven",
      "zipcode": "59590-4157",
      "geo": {
        "lat": "-68.6102",
        "lng": "-47.0653"
      }
    },
    "phone": "1-463-123-4447",
    "website": "ramiro.info",
    "company": {
      "name": "Romaguera-Jacobson",
      "catchPhrase": "Face to face bifurcated interface",
      "bs": "e-enable strategic applications"
    }
  },
....
]

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

使用 PHP 的 cURL GET 请求

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

使用 PHP 的 cURL GET 请求

在网络上,主要是 HTTPS,我们使用 GET 请求来获取特定的资源表示。为了获取数据,使用了 GET 方法。特别是在 API 和 Web 抓取场景中,开发人员使用特定于语言的方法。我们使用 cURL 函数来处理 PHP 中的 GET 请求
使用 PHP 的 cURL GET 请求
2024-02-27

PHP怎么使用cURL实现Get和Post请求

使用cURL库可以轻松地实现GET和POST请求。GET请求:```php// 创建一个cURL资源$curl = curl_init();// 设置请求的URL和其他选项curl_setopt($curl, CURLOPT_URL, 'h
2023-08-16

PHP如何使用cURL实现Get和Post请求

使用cURL库可以很方便地实现PHP中的GET和POST请求。GET请求:```php// 创建cURL资源$ch = curl_init();// 设置URL和其他cURL选项curl_setopt($ch, CURLOPT_URL, "
2023-08-15

如何用php禁止get请求

这篇文章主要介绍“如何用php禁止get请求”,在日常操作中,相信很多人在如何用php禁止get请求问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用php禁止get请求”的疑惑有所帮助!接下来,请跟着小编
2023-07-05

怎么使用cURL在PHP中POST请求增加参数

今天小编给大家分享一下怎么使用cURL在PHP中POST请求增加参数的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。首先,我们
2023-07-05

PHP中的curl库是如何进行网络请求的?(请解释PHP中curl库进行网络请求的基本用法。)

PHP中的cURL库用于进行网络请求,允许开发人员与远程服务器交互。基本用法包括初始化会话、设置请求选项、执行请求和获取响应信息。cURL支持高级功能,如HTTPS证书处理、会话管理、代理服务器和多路复用,从而提高网络请求的灵活性。
PHP中的curl库是如何进行网络请求的?(请解释PHP中curl库进行网络请求的基本用法。)
2024-04-02

如何像使用 go-curl 一样为 net/http GET 请求设置读取回调?

php小编西瓜为您介绍如何为net/http GET请求设置读取回调,实现类似于go-curl的功能。在使用net/http库发起GET请求时,我们可以利用http.Client和http.Request结构体的相关方法来设置读取回调函数。
如何像使用 go-curl 一样为 net/http GET 请求设置读取回调?
2024-02-11

如何使用AutoMapper实现GET请求

这篇文章主要讲解了“如何使用AutoMapper实现GET请求”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用AutoMapper实现GET请求”吧!需求需求很简单:实现GET请求获取
2023-06-22

无法使用 Gin/GoLang 将 POST 请求更改为 GET 请求

php小编百草今天要为大家介绍一个常见的问题,那就是在使用Gin/GoLang框架时,如何将POST请求更改为GET请求。有时候我们可能需要将POST请求转换为GET请求,例如在某些特定情况下或者为了方便测试。不过,要实现这个功能并不是那么
无法使用 Gin/GoLang 将 POST 请求更改为 GET 请求
2024-02-10

RestTemplate GET请求怎么用

这篇文章给大家分享的是有关RestTemplate GET请求怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、 getForObject() 方法1.1.以String的方式接受请求结果数据在Spring
2023-06-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录