从远程网址获取cookie

时间:2009-12-28 11:38:54

标签: cookies

我想使用PHP将文件从服务器远程复制到我的服务器。 包含该文件的服务器需要授权, 所以我把授权(用户/通行证)放在我的请求中,如下所示:

1-打开套接字连接 $fp=fsockopen (....

2-设置这样的请求:

 $request = POST . " " . $url . " HTTP/1.1" . $nn . "Host: " . www.example.com:80 . $nn . "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14" . $nn . "Accept: */*" . $nn . "Accept-Language: en-us;q=0.7,en;q=0.3" . $nn . "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7" . $nn . "Pragma: no-cache" . $nn . "Cache-Control: no-chache" . $nn   .  "Connection: Close"

3-发送请求如:

fputs ( $fp, $request );

这将有效,但当网站使用SESSION时,它会向浏览器发送cookie,每当浏览器需要网站上的内容时,网站服务器都会检查cookie并做出响应。

所以,当我从PHP代码请求远程服务器时(即我没有浏览器来保存cookie) 如何接收和存储远程服务器发送的cookie?

我知道如何在我的请求中使用Cookie,我只是将Cookie包含在我的请求中:

     $request = POST . " " . $url . " HTTP/1.1" . $nn . "Host: " . www.example.com:80 . $nn . "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14" . $nn . "Accept: */*" . $nn . "Accept-Language: en-us;q=0.7,en;q=0.3" . $nn . "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7" . $nn . "Pragma: no-cache" . $nn . "Cache-Control: no-chache" . $nn . $cookies  .  "Connection: Close"

我不知道如何接收和存储cookie :(

这个想法是

1-发送没有cookie的第一个请求

2-接收并存储cookie

3使用cookies发送请求并飞行:)

我怎么能做NO.2?

另一个建议: 我可以从标题中读取cookie: 看看这个

HTTP / 1.1 302暂时移动内容长度:0内容类型:text / html服务器:Sun-ONE-Web-Server / 6。1日期:星期一,2009年12月28日11:01:05 GMT Set-cookie:< strong> ERIGHTS = VQPFIWEdiYEtW4Eko2T3bikz4H2dDx2FtH-zlTTRFyzW + urkCU7bwGj2w == ; path = /; domain = .example.org Set-cookie: WLSESSION = 1512202892.20480.0000 ; expires = Tue,29-Dec-2009 11:01:06 GMT路径= /位置:http://example.org/example

1 个答案:

答案 0 :(得分:1)

您是否考虑过使用Zend_HTTP。它具有非常好的cookie处理能力。

$client = new Zend_HTTP_Client();
$client->setCookieJar(); //now all cookies are stored for this Zend_HTTP_Client
相关问题