数据载入中,请稍后......
 
展开
懒人码库客户端 点击或扫描下载
欢迎来到懒人码库!懒人码库QQ群:19651313
欢迎来到懒人码库!懒人码库QQ群:19651313  
当前位置:懒人码库 > 服务端脚本 > PHP

curl模拟登陆微信公众平台

2013-07-14 23:50 来源:www.lanrenmaku.com / 作者:懒人 已被阅读:次 分类:PHP 上一篇:php中的双美元符号$$符号什么意思? 下一篇:curl模拟登陆微信公众平台以及群发微信

<?
$url = "http://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN";
//$fields = "username=71512398&pwd=***************************&imgcode=&verify=&f=json";
$fields = array('username' => '71512398', 'pwd' => '*************************', 'imgcode' => '', 'verify' => '', 'f' => 'json');

 


// 用来存放cookie的文件
$cookie_file = dirname(__FILE__)."/cookie.txt";


// 启动一个CURL会话
$ch = curl_init();

// 要访问的地址
curl_setopt($ch, CURLOPT_URL, $url);

// 对认证证书来源的检查,0表示阻止对证书的合法性的检查。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

// 从证书中检查SSL加密算法是否存在
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);

//模拟用户使用的浏览器,在HTTP请求中包含一个”user-agent”头的字符串。
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");

// 发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样。
curl_setopt($ch, CURLOPT_POST, 1);

//要传送的所有数据,如果要传送一个文件,需要一个@开头的文件名
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);

//连接关闭以后,存放cookie信息的文件名称
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);

// 包含cookie信息的文件名称,这个cookie文件可以是Netscape格式或者HTTP风格的header信息。
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);

// 设置curl允许执行的最长秒数
//curl_setopt($ch, CURLOPT_TIMEOUT, 6);

// 获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

// 执行操作
$result = curl_exec($ch);
//print_r ($result);

if ($result == NULL) {
echo "Error:";
echo curl_errno($ch) . " – " . curl_error($ch) . "";}

// 关闭CURL会话
curl_close($ch);
 //echo ($result);
$result=json_decode($result,true);
//print_r ($result);
$result=$result['ErrMsg'];
preg_match_all('/token=(\d+)/s',$result,$matches);

$result=$matches[1][0];

 

$url2 = "https://mp.weixin.qq.com/cgi-bin/singlesend?t=ajax-response&lang=zh_CN";
$post_data = array("tofakeid" => "937814962","type" => "1","content" => "把提交写成函数吧 !!","token" => $result,"ajax" => "1","error" => "false");

$ch2 = curl_init();
//curl_setopt($ch2, CURLOPT_REFERER, 'https://mp.weixin.qq.com/cgi-bin/singlemsgpage?token=1360739407&fromfakeid=937814962&msgid=&source=&count=20&t=wxm-singlechat&lang=zh_CN');//模拟来源

curl_setopt($ch2, CURLOPT_URL, $url2);
curl_setopt($ch2, CURLOPT_REFERER, 'https://mp.weixin.qq.com/cgi-bin/singlemsgpage?token='.$result.'&fromfakeid=937814962&msgid=&source=&count=20&t=wxm-singlechat&lang=zh_CN');
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);  //时候将获取数据返回
// 我们在POST数据哦!
curl_setopt($ch2, CURLOPT_POST, 1); //设置为POST传输
// 把post的变量加上
curl_setopt($ch2, CURLOPT_POSTFIELDS, $post_data); //post过去数据
curl_setopt($ch2, CURLOPT_COOKIEFILE, $cookie_file);    //读取cookie
curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch2, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false);

$output = curl_exec($ch2);
if($output === false){  //判断错误
 echo curl_error($ch2);
}
$info = curl_getinfo($ch2);  //能够在cURL执行后获取这一请求的有关信息
curl_close($ch2);
print_r ($output);

 

 

 


//输出页面

 

 

/*$ch = curl_init();
//$timeout = 5;
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, $fields);
$data = curl_exec($ch);
curl_close($ch);*/

?>

小贴士:懒人码库 为网页前端人员提供建站常用的广告代码和网页特效,内容涵盖焦点图,导航菜单,jQuery代码,图片特效,对联广告,日历控件,在线客服等。