PHP实现登陆并抓取微信列表中最新一组微信消息的方法

发布时间 - 2026-01-11 02:15:50    点击率:

本文实例讲述了PHP实现登陆并抓取微信列表中最新一组微信消息的方法。分享给大家供大家参考,具体如下:

<?php
$_G['wx_g'] = array('init' => array(
        "wx_content" => array("weixin_user" => "微信号码", "weixin_pass" => "微信密码")
      )
);
wx_login();
$messge_list = get_message_list();
$file_id=$messge_list['item'][0]['multi_item'][0]['file_id'];
//print_r($messge_list);exit;
if(!DB::result_first("select count(weiyi_id) from test.yangang_jiaojing where weiyi_id={$file_id} ")){
  DB::query("delete from test.yangang_jiaojing");
  foreach ($messge_list['item'][0]['multi_item'] as $key => $val){
      $val['title']=mb_convert_encoding($val['title'], 'GBK','UTF-8');
      $val['weiyi_id']=mb_convert_encoding($val['file_id'], 'GBK','UTF-8');
      $val['des']=mb_convert_encoding($val['digest'], 'GBK','UTF-8');
      $val['picurl']=$val['cover'];
      $val['detail']=$val['content_url'];
      $query_cheng = "INSERT INTO test.yangang_jiaojing(weiyi_id,title,pic_url,detail_url,des)VALUES ({$val['weiyi_id']},'{$val['title']}','{$val['picurl']}','{$val['detail']}','{$val['des']}')";
      $count1=DB::query($query_cheng);
  }
}
function get_message_list(){
  global $_G;
  $cookie=$_G['wx_g']['cookie'];
  $url = "https://mp.weixin.qq.com/cgi-bin/appmsg?begin=0&count=2&t=media/appmsg_list&type=10&action=list&token=".$_G['wx_g']['token']."&lang=zh_CN";
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_COOKIE, $cookie);
  curl_setopt($ch, CURLOPT_REFERER, "https://mp.weixin.qq.com/cgi-bin/appmsg?begin=0&count=2&t=media/appmsg_list&type=10&action=list&token=".$_G['wx_g']['token']."&lang=zh_CN");
  curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:18.0) Gecko/20100101 Firefox/18.0");
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION,true);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  curl_setopt($ch, CURLOPT_SSLVERSION, 3);
  $output2 = curl_exec($ch);
  curl_close($ch);
  //echo $output2;exit;
  $output1=explode('wx.cgiData = ',$output2);
  $output1=$output1[1];
  $output1=explode(',"file_cnt":',$output1);
  $output1=$output1[0];
  $output1.='}';
  $message_list=json_decode($output1,true);
  //$message_list=mb_convert_encoding($message_list, "GBK","UTF-8");
  //print_r($message_list);exit;
  return $message_list;
}
function wx_login(){
  global $_G;
  //echo $_G['wx_g']['init']['wx_content']['weixin_user'];exit;
  $username = $_G['wx_g']['init']['wx_content']['weixin_user'];
  $pwd = md5($_G['wx_g']['init']['wx_content']['weixin_pass']);
  $url = "https://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN";
  $post_data = "username=".$username."&pwd=".$pwd."&imgcode=&f=json";
  $cookie = "pgv_pvid=2067516646";
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_HEADER, 1);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
  curl_setopt($ch, CURLOPT_COOKIE, $cookie);
  curl_setopt($ch, CURLOPT_REFERER, "https://mp.weixin.qq.com/cgi-bin/loginpage?t=wxm2-login&lang=zh_CN");
  curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:18.0) Gecko/20100101 Firefox/18.0");
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION,true);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  curl_setopt($ch, CURLOPT_SSLVERSION, 3);
  $output = curl_exec($ch);
  curl_close($ch);
  //echo $output;exit;
  list($header, $body) = explode("\r\n\r\n", $output);
  preg_match_all("/set\-cookie:([^\r\n]*)/i", $header, $matches);
  if(!empty($matches[1][2])){
    $cookie = $matches[1][0].$matches[1][1].$matches[1][2].$matches[1][3];
  }else{
    $cookie = $matches[1][0].$matches[1][1];
  }
  $cookie = str_replace(array('Path=/',' ; Secure; HttpOnly','=;'),array('','','='), $cookie);
  $cookie = 'pgv_pvid=6648492946;'.$cookie;
  $data = json_decode($body,true);
  $result = explode('token=',$data['redirect_url']);
  $token = $result[1];
  if(!$token) cpmsg($installlang['import_error_password'], "{$request_url}&step=import&pswerror=1", 'error');
  //写入到全局变量
  $_G['wx_g']['cookie'] = $cookie;
  $_G['wx_g']['token'] = $token;
}
?>

CREATE TABLE IF NOT EXISTS `yangang_jiaojing` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `title` varchar(100) NOT NULL,
 `des` varchar(300) NOT NULL,
 `detail_url` varchar(300) NOT NULL,
 `pic_url` varchar(300) NOT NULL,
 `note` varchar(50) NOT NULL,
 `weiyi_id` int(11) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk AUTO_INCREMENT=1 ;

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP微信开发技巧汇总》、《PHP编码与转码操作技巧汇总》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。


# PHP  # 登陆  # 抓取  # 微信  # 最新消息  # PHP后台实现微信小程序登录  # PHP实现微信小程序人脸识别刷脸登录功能  # php的laravel框架快速集成微信登录的方法  # PHP版微信第三方实现一键登录及获取用户信息的方法  # php版微信自动登录并获取昵称的方法  # PHP Curl模拟登录微信公众平台、新浪微博实例代码  # php实现微信扫码自动登陆与注册功能  # PHP实现微信模拟登陆并给用户发送消息的方法【文字  # 图片  # 图文】  # php实现微信模拟登陆、获取用户列表及群发消息功能示例  # PHP微信PC二维码登陆的实现思路  # PHP实现网站应用微信登录功能详解  # 操作技巧  # 相关内容  # 感兴趣  # 给大家  # 更多关于  # 所述  # 程序设计  # 全局变量  # 编程技巧  # 讲述了  # 列表中  # cookie  # url  # global  # function  # qq  # cgi  # weixin  # https  # mp 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  如何在IIS中新建站点并配置端口与物理路径?  如何在阿里云高效完成企业建站全流程?  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  Laravel Session怎么存储_Laravel Session驱动配置详解  php json中文编码为null的解决办法  nginx修改上传文件大小限制的方法  北京企业网站设计制作公司,北京铁路集团官方网站?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  javascript中的try catch异常捕获机制用法分析  EditPlus中的正则表达式 实战(4)  bing浏览器学术搜索入口_bing学术文献检索地址  做企业网站制作流程,企业网站制作基本流程有哪些?  Android仿QQ列表左滑删除操作  Laravel如何生成URL和重定向?(路由助手函数)  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  PHP正则匹配日期和时间(时间戳转换)的实例代码  Laravel如何创建自定义中间件?(Middleware代码示例)  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  JS弹性运动实现方法分析  javascript日期怎么处理_如何格式化输出  Laravel怎么上传文件_Laravel图片上传及存储配置  Python图片处理进阶教程_Pillow滤镜与图像增强  Laravel PHP版本要求一览_Laravel各版本环境要求对照  实现点击下箭头变上箭头来回切换的两种方法【推荐】  Laravel如何实现多对多模型关联?(Eloquent教程)  Laravel Docker环境搭建教程_Laravel Sail使用指南  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  PythonWeb开发入门教程_Flask快速构建Web应用  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  如何破解联通资金短缺导致的基站建设难题?  Android使用GridView实现日历的简单功能  想要更高端的建设网站,这些原则一定要坚持!  Android实现代码画虚线边框背景效果  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  Laravel怎么实现验证码(Captcha)功能  如何有效防御Web建站篡改攻击?  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  Laravel观察者模式如何使用_Laravel Model Observer配置  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出