参数 CURLOPT_RETURNTRANSFER 是将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。CURLOPT_RETURNTRANSFER参数的作用是
把CRUL获取的内容赋值到变量。它默认是 0 直接返回获取的输出的文本流,有时候,我们要拿返回值来做判断或者做其他用途的话那就不太好了。所以,有的时候我们希望返回的内容作

为变量储存,而不是直接输出,那么该怎么做呢?本篇文章主要介绍了 php curl_exec()函数 CURL获取返回值的方法

其实CURLOPT_RETURNTRANSFER 可以设置,如果设置成CURLOPT_RETURNTRANSFER 1,它就将使用PHP curl获取页面内容或提交数据,作为变量储存,而不是直接输出。

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

来自https://reqbin.com/req/php/xlzvgz1v/php-post-request的示例

<?php

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

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

$headers = array(
   "Accept: application/json",
   "Content-Type: application/json",
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

$data = <<<DATA
{
  "Id": 78912,
  "Customer": "Jason Sweet",
  "Quantity": 1,
  "Price": 18.00
}
DATA;

curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

//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);

?>

curl获取页面内容, 不直接输出例子:

$url = 'https://const.net.cn';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec($ch); // 已经获取到内容,没有输出到页面上。

curl_close($ch);

echo $response;

?>

当我们将CURLOPT_RETURNTRANSFER 设置成 1 的时候,页面是没有输出内容的,我们将获取的内容赋值给了一个变量$response ,用 echo 输出的变量$response。

本文链接地址:https://const.net.cn/300.html

标签: none

添加新评论