• 技术文章 >php教程 >PHP源码

    phpQQ登陆

    PHP中文网PHP中文网2016-05-25 17:10:23原创557
    代码

    class qq {
    
        public $sid;
        public $http;
        public $qq_num;
    
        function __construct() {
            $this->http = new http_no_cookie;
        }
    
        function login($qq_num, $qq_pwd) {
           echo  $data = $this->http->get("http://pt.3g.qq.com/");
            $action = preg_match("/action=\"(.+)?\"/", $data, $matches);
            $action = $matches[1];
            $params = array();
            $params["login_url"] = "http://pt.3g.qq.com/s?aid=nLogin";
            $params["sidtype"] = 1;
            $params["loginTitle"] = "手机腾讯网";
            $params["bid"] = 0;
            $params["qq"] = $qq_num;
            $params["pwd"] = $qq_pwd;
            $params["loginType"] =1;
            echo $data = $this->http->post($action, http_build_query($params));
    		if(preg_match("/http:\/\/vc.gtimg.com\//",$data,$matches)){
    			echo "需要输入验证码";
    			return 0;
    			exit;
    		}
    
    		if(preg_match("/密码错误/",$data,$matches)){
    		    echo "密码错误";
    			return 1;
    			exit;
    		}
            $action = preg_match("/sid=(.+?)&/", $data, $matches);
            $this->sid = $matches[1];
    		return $this->sid;
        }
    
        function sendMsg($to_num, $msg, $sid = 0) {
            $sid = $sid ? $sid : $this->sid;
            if (!$sid)
                exit("sid值未传入进去");
            $params = array();
            $params["msg"] = $msg;
            $params["u"] = $to_num;
            $params["saveURL"] = 0;
            $params["do"] = "send";
            $params["on"] = 1;
            $params["aid"] = "发送";
            $url = "http://q16.3g.qq.com/g/s?sid=" . $sid;
            echo $data = $this->http->post($url, http_build_query($params));
    		return $data;
        }
    
        function getMsg($qq_num = 0, $sid = 0) {
            $qq_num = $qq_num ? $qq_num : $this->qq_num;
            if (!$qq_num)
                exit("qq_num值未传入进去");
    	    $sid = $sid ? $sid : $this->sid;
            if (!$sid)
                exit("sid值未传入进去");
            $url = "http://q16.3g.qq.com/g/s?sid=" . $sid . "&3G_UIN=" . $qq_num . "&saveURL=0&aid=nqqChat";
            $data = $this->http->get($url);
            preg_match("/name=\"u\" value=\"(\d+)\"/", $data, $matches);
            $result["qq"] = $matches[1];
            $data = explode("<form", $data);
            $data = $data[0];
            preg_match_all("/<p>(.+)?<\/p>/", $data, $matches);
            unset($matches[1][0]);
            $result["content"] = $matches[1];
            return $result;
        }
    	function logout($sid){
    		$url="http://pt.3g.qq.com/s?sid=".$sid."&aid=nLogout";
    		echo $url;
    		echo $this->http->get($url);
    	}
    	function getFriendsList($qq_num = 0, $sid = 0){
    	    $result=array();
    
    		$qq_num = $qq_num ? $qq_num : $this->qq_num;
            if (!$qq_num)
                exit("qq_num值未传入进去");
            $sid = $sid ? $sid : $this->sid;
            if (!$sid)
                exit("sid值未传入进去");
    		$url="http://q16.3g.qq.com/g/s?aid=nqqchatMain&sid=".$sid."&myqq=".$qq_num;
    		while(true){
    	    $i=1;
    		$url.="&p=".$i;
    		$data=$this->http->get($url);
    		preg_match_all("/u=(.+?)&/",$data,$matches);
    		foreach($matches[1] as $key=>$value){
    			$result[]=$value;
    		}
    		if(count($matches[1])<13)
    			break;
    		$i++;
    	   }
    	   return $result;
    	}
    }

    2. http.class.php

    <?php
    class http {
        private $curl;
        public $user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.29 Safari/525.13";
         
        public function get($url) {
            $this->curl = curl_init();
            curl_setopt($this->curl, CURLOPT_CONNECTTIMEOUT, 20);
            curl_setopt($this->curl, CURLOPT_URL, $url);
            curl_setopt($this->curl, CURLOPT_HEADER, 1);
            curl_setopt($this->curl, CURLOPT_USERAGENT, $this->user_agent);
            curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, 1);
            $data = curl_exec($this->curl);
            curl_close($this->curl);
            return $data;
        }
        public function post($url, $params) {
            $this->curl = curl_init();
            curl_setopt($this->curl, CURLOPT_CONNECTTIMEOUT, 20);
            curl_setopt($this->curl, CURLOPT_URL, $url);
            curl_setopt($this->curl, CURLOPT_HEADER, 1);
            //curl_setopt($this->curl, CURLOPT_FOLLOWLOCATION, true);
            curl_setopt($this->curl, CURLOPT_POST, 1);
            curl_setopt($this->curl, CURLOPT_USERAGENT, $this->user_agent);
            curl_setopt($this->curl, CURLOPT_POSTFIELDS, $params);
            curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, 1);
            $data = curl_exec($this->curl);
            curl_close($this->curl);
            return $data;
        }
    }
    ?>
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:QQ登陆
    上一篇:通过淘宝IP接口查询客户端地址 下一篇:通过淘宝API接口查询客户端地址
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• php分页多种实现程序代码 • 微信通过数据库创建菜单• huihuicms系统以APP方式重新诠释cms的意义• PHP 的 md5 和 uniqid 函数使用示例• 携程基票 sdk
    1/1

    PHP中文网