教学之友,学习之友。

站长教学网

当前位置: 站长教学网 > 网站编程 > PHP教程 >

PHP如何利用curl实现get,post和cookie实例 .(2)

时间:2012-05-24 00:22来源:未知 作者:ken 点击:

3. php的curl传送cookie

两种方式:

一种是自动:

curl_setopt($curlHandle, CURLOPT_COOKIEJAR, 'cookie.txt '); //保存
curl_setopt($curlHandle, CURLOPT_COOKIEFILE, 'cookie.txt '); //读取

 

这样COOKIE会自动跟上去.
不过要分两次,一是先访问产生cookie,接着连结才能用cookie

 

例子:

<?php  

function get_curlcuconent2($filename,$referer)
{
   $cookie_jar = tempnam('./tmp','JSESSIONID');
      
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $filename);
   curl_setopt($ch, CURLOPT_HEADER, false);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

   //设置文件读取并提交的cookie路径
   curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
   $filecontent=curl_exec($ch);
   curl_close($ch);
      
   $ch = curl_init();
   $hostname ="www.eduyo.com";
   //$referer="http://www.eduyo.com/";
   curl_setopt($ch, CURLOPT_URL, $filename);
   curl_setopt($ch, CURLOPT_REFERER, $referer); // 看这里,你也可以说你从google来
   curl_setopt($ch, CURLOPT_USERAGENT, "www.eduyo.com");

   //$request = "JSESSIONID=abc6szw15ozvZ_PU9b-8r"; //设置POST参数
   //curl_setopt($ch, CURLOPT_POSTFIELDS, $request);  
   // 上面这句,当然你可以说你是baidu,改掉这里的值就ok了,可以实现小偷的功能,$_SERVER['HTTP_USER_AGENT']
   //你也可以自己做个 spider 了,那么就伪装这里的 CURLOPT_USERAGENT 吧
   //如果你要把这个程序放到linux上用php -q执行那也要写出具体的$_SERVER['HTTP_USER_AGENT'],伪造的也可以
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);
   curl_setopt($ch, CURLOPT_HEADER, false);//设定是否输出页面内容
   curl_setopt($ch, CURLOPT_GET, 1); // post,get 过去

   $filecontent = curl_exec($ch);
   preg_match_all("/charset=(.+?)[NULL/"/']/is",$filecontent, $charsetarray);
   if(strtolower($charsetarray[1][0])=="utf-8")
         $filecontent=iconv( 'utf-8', 'gb18030//IGNORE' , $filecontent);
   curl_close($ch);
   return $filecontent;
}

?>

一种自定义: 站长教学网 eduyo.com

$header[]= 'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, text/html, * '. '/* ';
$header[]= 'Accept-Language: zh-cn ';
$header[]= 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) ';
$header[]= 'Host: '.$你的目标HOST;
$header[]= 'Connection: Keep-Alive ';
$header[]= 'Cookie: '.$你的COOKIE串;

curl_setopt($curlHandel,CURLOPT_HTTPHEADER,$header);

 

(责任编辑:ken)
TAG标签: php curl Cookie 源码 get post 实例
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
注册登录:不允许匿名留言,登录后留言无需输入验证码。
栏目列表
最新内容