PHP基于curl实现模拟微信浏览器打开微信链接的方法示例


Posted in PHP onFebruary 15, 2019

本文实例讲述了PHP基于curl实现模拟微信浏览器打开微信链接的方法。分享给大家供大家参考,具体如下:

网络上没有可以直接打开微信的浏览器 但是我们可以模拟浏览器

微信浏览器的HTTP_USER_AGENT

在iPhone下,返回

Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B176 MicroMessenger/4.3.2

在Android下,返回

Mozilla/5.0 (Linux; U; Android 2.3.6; zh-cn; GT-S5660 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MicroMessenger/4.5.255

不难发现微信浏览器为 MicroMessenger ,并且有版本号,也可以判断手机类型为iPhone还是Android

php 模拟 微信浏览器 使用如下:

get 方式

function get($url, $referer, $cookie) {
  $header = array();
  $header[] = 'Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*';
  $header[] = 'Connection: Keep-Alive';
  $header[] = 'Accept-Language: zh-cn';
  $header[] = 'Cache-Control: no-cache';
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_HEADER, 1);
  curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B176 MicroMessenger/4.3.2');
  curl_setopt($ch, CURLOPT_REFERER, $referer);
  curl_setopt($ch, CURLOPT_COOKIE, $cookie);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_TIMEOUT, 10);
  $result = curl_exec($ch);
  curl_close($ch);
  return $result;
}
echo get('http://wxt.wedoor.com/wxtAction.do?method=showyl&id=f20c503cac9349308c3a87ecbae5908c&scene=1','','');

post方式

function post($url, $data, $referer, $cookie) {
  $header = array();
  $header[] = 'Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*';
  $header[] = 'Connection: Keep-Alive';
  $header[] = 'Accept-Language: zh-cn';
  $header[] = 'Cache-Control: no-cache';
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_HEADER, 1);
  curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Linux; U; Android 2.3.6; zh-cn; GT-S5660 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MicroMessenger/4.5.255');
  curl_setopt($ch, CURLOPT_REFERER, $referer);
  curl_setopt($ch, CURLOPT_COOKIE, $cookie);
  curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_TIMEOUT, 10);
  $result = curl_exec($ch);
  curl_close($ch);
  return $result;
}
echo post('http://wxt.wedoor.com/wxtAction.do?method=showyl&id=f20c503cac9349308c3a87ecbae5908c&scene=1','','','');

如此这般就可以了

如果要做盗链

if(strpos($_SERVER["HTTP_USER_AGENT"],"MicroMessenger"))
  echo "Welcome to wechat word";
else
  echo "http/1.1 401 Unauthorized";

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

PHP 相关文章推荐
在windows iis5下安装php4.0+mysql之我见
Oct 09 PHP
让PHP支持页面回退的两种方法
Jan 10 PHP
PHP IPV6正则表达式验证代码
Feb 16 PHP
PHP file_get_contents设置超时处理方法
Sep 30 PHP
使用YUI+Ant 实现JS CSS压缩
Sep 02 PHP
PHP中require和include路径问题详解
Dec 25 PHP
DOM基础及php读取xml内容操作的方法
Jan 23 PHP
PHP内核探索:哈希表碰撞攻击原理
Jul 31 PHP
基于PHP实现简单的随机抽奖小程序
Jan 05 PHP
浅析Yii2集成富文本编辑器redactor实例教程
Apr 25 PHP
php实现的二分查找算法示例
Jun 20 PHP
Laravel框架Auth用户认证操作实例分析
Sep 29 PHP
PHP crypt()函数的用法讲解
Feb 15 #PHP
phpinfo无法显示的原因及解决办法
Feb 15 #PHP
实例介绍PHP中zip_open()函数用法
Feb 15 #PHP
PHP echo()函数讲解
Feb 15 #PHP
PHP crc32()函数讲解
Feb 14 #PHP
PHP count_chars()函数讲解
Feb 14 #PHP
PHP让网站移动访问更加友好方法
Feb 14 #PHP
You might like
风格模板初级不完全修改教程
2006/10/09 PHP
请php正则走开
2008/03/15 PHP
PHP 自定义错误处理函数trigger_error()
2013/03/26 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
2013/07/03 PHP
php获取网页标题和内容函数(不包含html标签)
2014/02/03 PHP
Nginx下配置codeigniter框架方法
2015/04/07 PHP
Laravel重定向,a链接跳转,控制器跳转示例
2019/10/22 PHP
Javascript select下拉框操作常用方法
2009/11/09 Javascript
商城常用滚动的焦点图效果代码简单实用
2013/03/28 Javascript
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
js转html实体的方法
2016/09/27 Javascript
angular源码学习第一篇 setupModuleLoader方法
2016/10/20 Javascript
简单实现js倒计时功能
2017/02/13 Javascript
20行JS代码实现粘贴板复制功能
2018/02/06 Javascript
node.js微信小程序配置消息推送的实现
2019/02/13 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
Vue 一键清空表单的实现方法
2020/02/07 Javascript
使用nodejs实现JSON文件自动转Excel的工具(推荐)
2020/06/24 NodeJs
Python import用法以及与from...import的区别
2015/05/28 Python
python实现红包裂变算法
2016/02/16 Python
Python用imghdr模块识别图片格式实例解析
2018/01/11 Python
python3基于TCP实现CS架构文件传输
2018/07/28 Python
Pandas过滤dataframe中包含特定字符串的数据方法
2018/11/07 Python
Python urlencode和unquote函数使用实例解析
2020/03/31 Python
使用tensorflow实现VGG网络,训练mnist数据集方式
2020/05/26 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
2020/10/15 Python
物流管理专业大学生自荐信
2013/10/04 职场文书
社区工作者先进事迹
2014/01/18 职场文书
安全资金保障制度
2014/01/23 职场文书
社区两委对照检查材料
2014/08/23 职场文书
2014年打非治违工作总结
2014/11/13 职场文书
初中家长评语大全
2014/12/26 职场文书
交通事故被告答辩状
2015/05/22 职场文书
律师函格式范本
2015/05/27 职场文书
工作会议简报
2015/07/20 职场文书
保姆聘用合同
2015/09/21 职场文书