Chinaunix首页 | 论坛 | 博客
  • 博客访问: 393921
  • 博文数量: 85
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1707
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-27 11:18
个人简介

学无止境……

文章分类

全部博文(85)

分类: PHP

2014-08-04 09:48:50


  1. <?php
  2. header("Content-type:text/html;charset=utf-8");
  3. $cookie_file = dirname(__FILE__)."/cookie_".md5(basename(__FILE__)).".txt"; // 设置Cookie文件保存路径及文件名
  4. function vlogin($url,$data){ // 模拟登录获取Cookie函数
  5.     $curl = curl_init(); // 启动一个CURL会话
  6.     curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
  7.     curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
  8.     curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
  9.     curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
  10.     curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
  11.     curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
  12.     curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
  13.     curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
  14.     curl_setopt($curl, CURLOPT_COOKIEJAR, $GLOBALS['cookie_file']); // 存放Cookie信息的文件名称
  15.     curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']); // 读取上面所储存的Cookie信息
  16.     curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
  17.     curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
  18.     curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
  19.     $tmpInfo = curl_exec($curl); // 执行操作
  20.     if (curl_errno($curl)) {
  21.        echo 'Errno'.curl_error($curl);
  22.     }
  23.     curl_close($curl); // 关闭CURL会话
  24.     return $tmpInfo; // 返回数据
  25. }
  26.   
  27. function vget($url){ // 模拟获取内容函数
  28.     $curl = curl_init(); // 启动一个CURL会话
  29.     curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
  30.     curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
  31.     curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
  32.     curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
  33.     curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
  34.     curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
  35.     curl_setopt($curl, CURLOPT_HTTPGET, 1); // 发送一个常规的Post请求
  36.     curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']); // 读取上面所储存的Cookie信息
  37.     curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
  38.     curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
  39.     curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
  40.     $tmpInfo = curl_exec($curl); // 执行操作
  41.     if (curl_errno($curl)) {
  42.        echo 'Errno'.curl_error($curl);
  43.     }
  44.     curl_close($curl); // 关闭CURL会话
  45.     return $tmpInfo; // 返回数据
  46. }
  47.   
  48. function vpost($url,$data){ // 模拟提交数据函数
  49.     $curl = curl_init(); // 启动一个CURL会话
  50.     curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
  51.     curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
  52.     curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
  53.     curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
  54.     curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
  55.     curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
  56.     curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
  57.     curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
  58.     curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']); // 读取上面所储存的Cookie信息
  59.     curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
  60.     curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
  61.     curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
  62.     $tmpInfo = curl_exec($curl); // 执行操作
  63.     if (curl_errno($curl)) {
  64.        echo 'Errno'.curl_error($curl);
  65.     }
  66.     curl_close($curl); // 关键CURL会话
  67.     return $tmpInfo; // 返回数据
  68. }
  69. function delcookie($cookie_file){ // 删除Cookie函数
  70.  @unlink($cookie_file); // 执行删除
  71. }
  72. function readcookies( $file)
  73.     {
  74.         $result = null;
  75.        
  76.         $fp = fopen( $file, "r" );
  77.         if($fp)
  78.         {
  79.           while ( !feof( $fp ) )
  80.           {
  81.               $buffer = fgets( $fp, 4096 );
  82.               $result = $buffer;
  83.               //$tmp = @split( "/t", $buffer );
  84.               //$result[@trim( $tmp[5] )] = @trim( $tmp[6] );
  85.           }
  86.          
  87.           fclose($fp);
  88.         }
  89.        
  90.         return $result;
  91.     }
  92. $url = '';
  93. if(!file_exists($cookie_file)) { // 检测Cookie是否存在
  94.     $str = vget($url); // 获取提交后台
  95.     preg_match("/action=\"([^\"]*?)\"/isU",$str,$hash); // 提取登录随机值
  96.     print_r($hash[1]);
  97.     vlogin($hash[1],'&f=xhtml&uin=你的qq号&aliastype=@qq.com&pwd=qq号密码&mss=1'); // 登录获取Cookie

  98. }
  99. else
  100. {
  101.     vget("");
  102.     echo '生成了cookie';
  103. }
  104. ?>

阅读(2014) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~