PHP curl_setopt_array函數(shù)

PHP Calendar 參考手冊 PHP cURL參考手冊

(PHP 5 >= 5.1.3)

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


說明

bool curl_setopt_array ( resource $ch , array $options )

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


參數(shù)

ch

由 curl_init() 返回的 cURL 句柄。

options

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


返回值

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


實(shí)例

初始化一個新的cURL輝煌并抓取一個web頁面。

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

// 設(shè)置URL和相應(yīng)的選項(xiàng)
$options = array(CURLOPT_URL => '//www.o2fo.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這個函數(shù)可以做如下模擬:

我們對curl_setopt_array()的等價實(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()來說,傳遞一個數(shù)組到CURLOPT_POST將會把數(shù)據(jù)以multipart/form-data的方式編碼,然而傳遞一個URL-encoded字符串將會以application/x-www-form-urlencoded的方式對數(shù)據(jù)進(jìn)行編碼。


PHP Calendar 參考手冊 PHP cURL參考手冊