PHP模拟登录开心网
2009-06-17 09:24:19 作者:allniu 来源:www.allniu.com 浏览次数:0 网友评论 0 条
<?php
/**
* 模拟登陆开心网
* @author niujiazhu
* @version 2009-06-07
*/
//定义常量
define( "USERAGENT", $_SERVER['HTTP_USER_AGENT'] );
define( "COOKIEJAR", tempnam( ini_get( "upload_tmp_dir" ), "cookie" ) );
define( "TIMEOUT", 10 );
class LandKaixin {
//定义一些常用参数
private $loginUrl = "http://www.kaixin001.com/login/login.php"; //登陆提交地址
private $defaultUrl = "http://www.kaixin001.com/home/"; //默认主页
private $friendUrl = "http://www.kaixin001.com/friend/index.php"; //好友页面
private $commentUrl = "http://www.kaixin001.com/comment/post.php"; //评论提交页面
function __construct($userEmail,$passWord){
$this->checkLogin($userEmail,$passWord);
}
/**
* 实现用户登陆
*
* @param string $userEmail 用户邮箱
* @param string $passWord 用户密码
* @return bool
*/
public function checkLogin($userEmail,$passWord){
$postargs = "email=".$userEmail."&password=".$passWord."&url='/home/'";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$this->loginUrl);
curl_setopt($ch,CURLOPT_POST,TRUE); //提交post请求
curl_setopt($ch,CURLOPT_POSTFIELDS,$postargs); //数据字符串
curl_setopt($ch,CURLOPT_HEADER,TRUE); //把一个头包含在输出中
curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE); //???
curl_setopt($ch, CURLOPT_USERAGENT,USERAGENT); //在HTTP请求中包含一个”user-agent”头的字符串
curl_setopt($ch,CURLOPT_COOKIEJAR,COOKIEJAR);
curl_setopt($ch,CURLOPT_TIMEOUT,TIMEOUT);
ob_start();
curl_exec($ch);
$result = ob_get_contents();
ob_end_clean();
curl_close($ch);
if ( $result != ''){
return FALSE;
}else {
return TRUE;
}
}
/**
* 获得页面的内容
*
* @param unknown_type $userName
* @param unknown_type $passWord
* @param unknown_type $requestUrl
* @return unknown
*/
function getContent($requestUrl){
if (empty($requestUrl)) $requestUrl = $this->defaultUrl;
$ch = curl_init( );
curl_setopt( $ch, CURLOPT_USERAGENT, USERAGENT );
curl_setopt( $ch, CURLOPT_COOKIEFILE, COOKIEJAR );
curl_setopt( $ch, CURLOPT_URL, $requestUrl );
curl_setopt( $ch, CURLOPT_TIMEOUT, TIMEOUT );
ob_start( );
curl_exec( $ch );
$contents = ob_get_contents( );
ob_end_clean( );
curl_close( $ch );
return $contents;
}
/**
* 获得用户好友信息
*@param int $dataType 0:超链接 1:好友id 2:好友名
* @return array
*/
public function getFriend($dataType =0){
$friendInfo = array();
$result = array();
$content = $this->getContent($this->friendUrl);
preg_match_all('/<a\s+href="\/home\/\?uid=(\d+)"\s+class="sl"+\s*>(.*?)<\/a>/is',$content,$friendInfo,PREG_PATTERN_ORDER);
if($dataType == 0 || empty($dataType)){
$result = $friendInfo[0];
}elseif ($dataType == 2 ){
$result = $friendInfo[1];
}else{
$result = $friendInfo[2];
}
return $result;
}
}
$kaixin = new LandKaixin("帐号","密码");
$friends = $kaixin->getFriend();
var_dump($friends);
?>



已有