= 5.1.3, PHP 7, PHP 8)curl_setopt_array — 為 cURL 傳輸會(huì)話批量設(shè)置選項(xiàng)說(shuō)明curl_setopt_array(resource $ch, array $options): bool為 cURL 傳輸會(huì)話">

curl_setopt_array

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

curl_setopt_array為 cURL 傳輸會(huì)話批量設(shè)置選項(xiàng)

說(shuō)明

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

為 cURL 傳輸會(huì)話批量設(shè)置選項(xiàng)。這個(gè)函數(shù)對(duì)于需要設(shè)置大量的 cURL 選項(xiàng)是非常有用的,不需要重復(fù)地調(diào)用 curl_setopt()

參數(shù)

handle

curl_init() 返回的 cURL 句柄。

options

一個(gè) array 用來(lái)確定將被設(shè)置的選項(xiàng)及其值。數(shù)組的鍵值必須是一個(gè)有效的curl_setopt()常量或者是它們對(duì)等的整數(shù)值。

返回值

如果全部的選項(xiàng)都被成功設(shè)置,返回true。如果一個(gè)選項(xiàng)不能被成功設(shè)置,馬上返回false,忽略其后的任何在options數(shù)組中的選項(xiàng)。

范例

示例 #1 初始化新的 cURL 會(huì)話并抓取 web 頁(yè)面

<?php
// 創(chuàng)建一個(gè)新 cURL 資源
$ch curl_init();

// 設(shè)置 URL 和相應(yīng)的選項(xiàng)
$options = array(CURLOPT_URL => 'http://www.example.com/',
                 
CURLOPT_HEADER => false
                
);

curl_setopt_array($ch$options);

// 抓取 URL 并把它傳遞給瀏覽器
curl_exec($ch);

// 關(guān)閉 cURL 資源,并且釋放系統(tǒng)資源
curl_close($ch);
?>

早于PHP 5.1.3這個(gè)函數(shù)可以做如下模擬:

示例 #2 我們對(duì)curl_setopt_array()的等價(jià)實(shí)現(xiàn)

<?php
if (!function_exists('curl_setopt_array')) {
   function 
curl_setopt_array(&$ch$curl_options)
   {
       foreach (
$curl_options as $option => $value) {
           if (!
curl_setopt($ch$option$value)) {
               return 
false;
           } 
       }
       return 
true;
   }
}
?>

注釋

注意:

curl_setopt()來(lái)說(shuō),傳遞一個(gè)數(shù)組到CURLOPT_POST將會(huì)把數(shù)據(jù)以multipart/form-data的方式編碼,然而傳遞一個(gè)URL-encoded字符串將會(huì)以application/x-www-form-urlencoded的方式對(duì)數(shù)據(jù)進(jìn)行編碼。

參見(jiàn)