多个cURL操作,同一个会话

时间:2010-10-11 17:03:11

标签: php curl

首先,我知道curl_multi_init但据我所知,它并不完全符合我的需要。

我在登录后面下载文件,所以

a)需要登录 b)下载图像

这是我目前拥有的

$login_url = 'https://us.test.com/Member/Login';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$login_url);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'login='.$this->username.'&password='.$this->userpass.'&signin=1&login_referer=none&remember_me=1');
curl_setopt($ch, CURLOPT_FAILONERROR,1);  
curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/test/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT'].'/test/cookie.txt');  
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, true);   
curl_exec($ch);

//Grab and Write the image
$image = file_get_contents($image_url); 
$f = fopen($_SERVER['DOCUMENT_ROOT'].'/test/uploads/'.$id.'.jpg', 'w');
fwrite($f, $image);
fclose($f);  


curl_close($ch);

任何有用的东西,非常感谢。

1 个答案:

答案 0 :(得分:2)

我想通了,只是将会话ID添加到cURL中。但是快速而肮脏的方式是

$ download_str ='wget -O'。 $ save。 $ id。 '.jpg --cookies = off --header“Cookie:PHPSESSID ='。$ session_id。'”'。 $ IMAGE_URL;

了shell_exec($ download_str);