Home > php教程 > php手册 > php curl模拟登陆人人网发表状态

php curl模拟登陆人人网发表状态

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-02 09:13:49
Original
937 people have browsed it

在php中要实现用户登录我们一般都会到curl模拟登陆功能,下面我就基于php的curl来实现登录人人网,完整的例子希望对各位有帮助,代码如下:

<?php 
	$cookie_file = dirname(__FILE__)."/renren.cookie"; 
	 
	$login_url = &#39;http://passport.renren.com/PLogin.do&#39;; 
	 
	$post_fields[&#39;email&#39;] = &#39;&#39;;//人人的帐号 
	$post_fields[&#39;password&#39;] = &#39;&#39;;//人人密码 
	$post_fields[&#39;origURL&#39;] = &#39;http%3A%2F%2Fhome.renren.com%2FHome.do&#39;; 
	$post_fields[&#39;domain&#39;] = &#39;renren.com&#39;; 
	 
	 
	$ch = curl_init($login_url); 
	curl_setopt($ch, CURLOPT_USERAGENT, &#39;Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5&#39;); 
	curl_setopt($ch, CURLOPT_HEADER, 0); 
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
	curl_setopt($ch, CURLOPT_MAXREDIRS, 1); 
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
	curl_setopt($ch, CURLOPT_AUTOREFERER, 1); 
	curl_setopt($ch, CURLOPT_POST, 1); 
	curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields); 
	curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); 
	$content = curl_exec($ch); 
	curl_close($ch); 
	//匹配用户的ID 
	$send_url=&#39;http://www.renren.com/home&#39;; 
	$ch = curl_init($send_url); 
	curl_setopt($ch, CURLOPT_HEADER, 0); 
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
	curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); 
	curl_exec($ch); 
	$info = curl_getinfo($ch); 
	curl_close($ch); 
	//获取用户id 
	$tmp = explode(&#39;/&#39;,$info[&#39;redirect_url&#39;]); 
	$uid = array_pop($tmp); 
	unset($tmp); 
	 
	//$uid = "305115027"; 
	//获取token和rtk 
	 
	$send_url=&#39;http://www.renren.com/&#39;.$uid; 
	$ch = curl_init($send_url); 
	curl_setopt($ch, CURLOPT_HEADER, 0); 
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
	curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); 
	$tmp = curl_exec($ch); 
	curl_close($ch); 
	preg_match_all("/get_check:&#39;(.*?)&#39;,get_check_x:&#39;(.*?)&#39;,/is",$tmp,$arr); 
	$token = $arr[1][0];//1121558104 
	$rtk = $arr[2][0];//e9a9cb2 
	 
	//发布信息 
	$poststr[&#39;content&#39;] = "这就是一个测试而已!!!"; 
	$poststr[&#39;withInfo&#39;] = &#39;{"wpath":[]}&#39;; 
	$poststr[&#39;hostid:&#39;] = $uid; 
	$poststr[&#39;privacyParams&#39;] = &#39;{"sourceControl": 99}&#39;; 
	$poststr[&#39;requestToken&#39;] = $token; 
	$poststr[&#39;_rtk&#39;] = $rtk; 
	$poststr[&#39;channel&#39;] = "renren"; 
	 
	$head = array( 
	   &#39;Referer:http://shell.renren.com/ajaxproxy.htm&#39;, 
	   &#39;X-Requested-With:XMLHttpRequest&#39;, 
	  ); 
	$ch = curl_init("http://shell.renren.com/{$uid}/status"); 
	curl_setopt($ch, CURLOPT_USERAGENT, &#39;Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5&#39;); 
	curl_setopt($ch,CURLOPT_HTTPHEADER,$head); 
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
	curl_setopt($ch, CURLOPT_MAXREDIRS, 1); 
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
	curl_setopt($ch, CURLOPT_AUTOREFERER, 1); 
	curl_setopt($ch, CURLOPT_POST, 1); 
	curl_setopt($ch, CURLOPT_POSTFIELDS, $poststr); 
	curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); 
	$content = curl_exec($ch);//开源代码phprm.com 
	curl_close($ch); 
	$data = json_decode($content,true); 
	if($data["code"] == "0"){ 
	 echo "发布成功!"; 
	}else{ 
	 echo "shit !!!"; 
	}
Copy after login

本文地址:

转载随意,但请附上文章地址:-)

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template