2010-03-30 31 views
0

我需要身份認證到該功能:CURL - 問題與認證

function multiRequest($data, $options = array()) { 

    // array of curl handles 
    $curly = array(); 
    // data to be returned 
    $result = array(); 

    // multi handle 
    $mh = curl_multi_init(); 

    // loop through $data and create curl handles 
    // then add them to the multi-handle 
    foreach ($data as $id => $d) { 

    $curly[$id] = curl_init(); 

    $url = (is_array($d) && !empty($d['url'])) ? $d['url'] : $d; 
    curl_setopt($curly[$id], CURLOPT_URL,   $url); 
    curl_setopt($curly[$id], CURLOPT_HEADER,   0); 
    curl_setopt($curly[$id], CURLOPT_RETURNTRANSFER, 1); 

    // post? 
    if (is_array($d)) { 
     if (!empty($d['post'])) { 
     curl_setopt($curly[$id], CURLOPT_POST,  1); 
     curl_setopt($curly[$id], CURLOPT_POSTFIELDS, $d['post']); 
     } 
    } 

    // extra options? 
    if (!empty($options)) { 
     curl_setopt_array($curly[$id], $options); 
    } 

    curl_multi_add_handle($mh, $curly[$id]); 
    } 

    // execute the handles 
    $running = null; 
    do { 
    curl_multi_exec($mh, $running); 
    } while($running > 0); 

    // get content and remove handles 
    foreach($curly as $id => $c) { 
    $result[$id] = curl_multi_getcontent($c); 
    curl_multi_remove_handle($mh, $c); 
    } 

    // all done 
    curl_multi_close($mh); 

    return $result; 
} 

我期待認證添加到這個功能,沿着這些線路的東西嗎?

curl_setopt($curly[$id], CURLOPT_USERPWD, "$username:$password"); 

任何幫助?

回答

0

您是否嘗試過發佈的代碼?這對我來說很好:

curl_setopt($curly[$id], CURLOPT_USERPWD, "$username:$password"); 

這個功能已經與權威性的作品,只是通過身份驗證字符串"user:pass"$options陣列英寸

multiRequest($data, array('CURLOPT_USERPWD' => "user:pass")); 

如果你正在尋找設置每個捲曲處理身份驗證,這樣的事情應該工作:

// auth? 
if (is_array($d)) { 
    if (!empty($d['user']) AND !empty($d['pass']) { 
    curl_setopt($curly[$id], CURLOPT_USERPWD, "{$d['user']}:{$d['pass']}"); 
    } 
} 

然後只是通過'user''auth'元素多維數組的一部分。

0

功能定義是否可以更改?

function multiRequest($data,$user,$pwd, $options = array()) 
foreach循環

然後,請執行以下操作:

... 
curl_setopt($curly[$id], CURLOPT_RETURNTRANSFER, 1); 

curl_setopt($curly[$id], CURLOPT_USERPWD, "$user:$pwd"); 

// post? 
...