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

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

WBOY
Freigeben: 2016-06-02 09:13:49
Original
906 Leute haben es durchsucht

在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 !!!"; 
	}
Nach dem Login kopieren

本文地址:

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage