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 输出

