Heim  >  Artikel  >  Backend-Entwicklung  >  php里有相当于Asp.Net中 CookieContainer的东西吗?

php里有相当于Asp.Net中 CookieContainer的东西吗?

WBOY
WBOYOriginal
2016-06-23 14:04:211286Durchsuche

在Asp.Net中,访问页面可通过下面的函数来完成,postData是需要Post指定url的数据:

public string getHtml(string url, CookieContainer cookie, byte[] postData);



在php中如何实现呢?是不是可以这样写呢?

<?phpfunction getHtml($url,$tmpFile,$postData){	$ch = curl_init($url);	curl_setopt($ch,CURLOPT_HEADER,0);	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  	curl_setopt($ch, CURLOPT_COOKIEJAR, $tmpFile);	curl_setopt($ch, CURLOPT_COOKIEFILE, $tmpFile); 	if($postData!=NULL)	{		curl_setopt($ch, CURLOPT_POST, 1);  		curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); 	}	$content=curl_exec($ch);  	curl_close($ch); 	return $content;}?>


下面这两句是否都不能少呢?
curl_setopt($ch, CURLOPT_COOKIEJAR, $tmpFile);
curl_setopt($ch, CURLOPT_COOKIEFILE, $tmpFile); 

只能通过临时文件吗?还有其他改进的方法吗?O(∩_∩)O谢谢啦~~~~~~


回复讨论(解决方案)

CURLOPT_COOKIEJAR 用于连接关闭时保存cookie到文件
CURLOPT_COOKIEFILE 用于连接时将文件中的cookie发送出去
CURLOPT_COOKIE 用于连接时将变量中的cookie发送出去
是否都要使用,取决于你的应用场景

保存到文件是默认动作
你可以通过设定 CURLOPT_READFUNCTION 用自己的函数来处理

多谢版主指导~~~

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn