curl_setopt_array()

1. 定义

顾名思义,该函数的作用为批量给curl传输会话设置选项。适用于需要设置大量curl选项的情况,以避免重复调用curl_setopt()函数。 所有选项都被成功配置则返回TRUE,有一个失败都将导致FALSE,并忽略后面的配置(因此可以将不容易配置失败的选项放在前面)。

2. 语法

curl_setopt_array ( resource $ch , array $options ) : bool

3. 参数说明

参数 可选性 数据类型 描述
$ch 必需 资源类型 通过函数curl_init()打开的curl资源句柄
$options 必需 数组 数组形式的curl选项,其中键名为有效的curl_setopt()函数的常量或其对应的整数值,键值则为配置项的值

4. 示例

<?php

// curl_setopt_array()
// 批量给curl传输会话设置选项。适用于需要设置大量curl选项的情况

$ch = curl_init();

$search = '极速教程 网尚科技';
$params = curl_escape($ch, $search);
$url = 'http://www.baidu.com/s?wd='.$params;

// *下面仅作一些展示,实际上可能不需要配置这么多信息
// *这些信息都可以在浏览器的开发者模式下,选择Network,选择URL(例如www.baidu.com),在Headers中的 Request Headers都能发现
$header = [
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
];
$useragent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36';
$encoding = 'gzip, deflate, br';
$setopts = [
    CURLOPT_URL=>$url,
    CURLOPT_RETURNTRANSFER=>TRUE,
    CURLOPT_REFERER=>'www.baidu.com',
    CURLOPT_HTTPHEADER=>$header,
    CURLOPT_USERAGENT=>$useragent,
    CURLOPT_ENCODING=>$encoding
];// !注意:这里的键名必须是CURLOPT的常量,而不是其常量的字符串形式
curl_setopt_array($ch, $setopts);
$res = curl_exec($ch);
curl_close($ch);

echo $res;// 输出 url 响应页面的源代码

5. 延展阅读