首页 > 代码库 > (转载)分享一个昨天写的,3GQQ登录及取回sid的php源代码,内涵post/get访问网页的源代码。

(转载)分享一个昨天写的,3GQQ登录及取回sid的php源代码,内涵post/get访问网页的源代码。

<?php//3gQQ登录,1qq,2密码,3返回sid,4返回验证码地址。function qqlogin($qq,$mm,&$returnsid,&$yzmurl){        $ym=get(‘http://pt.3g.qq.com/g/s?aid=nLogin‘);        $sid=text_midtext($ym,‘sid=‘,‘&‘);        $vdata=text_midtext($ym,‘?vdata=http://www.mamicode.com/‘,‘"‘);        $submitarr=array(                                ‘login_url‘=> ‘http%3A%2F%2Fpt.3g.qq.com%2Fs%3Faid%3DnLogin‘,                ‘q_from‘=> ‘‘,                ‘loginTitle‘=> ‘%E6%89%8B%E6%9C%BA%E8%85%BE%E8%AE%AF%E7%BD%91‘,                ‘bid‘=> ‘0‘,                ‘qq‘=> $qq,                ‘pwd‘=> $mm,                ‘loginType‘=> ‘1‘,                ‘loginsubmit‘=> ‘%E7%99%BB%E5%BD%95‘,        );        $submiturl=‘http://pt.3g.qq.com/handleLogin?sid=‘.$sid.‘&vdata=http://www.mamicode.com/‘.$vdata;        $submitdata=http_build_query($submitarr);        //echo $submitdata;        global $loginym;        $loginym=mb_convert_encoding(post($submiturl,$submitdata,‘‘),‘GBK‘,‘UTF-8‘);//腾讯的服务器是UTF-8编码。        $yz=strpos($loginym,‘登录成功‘);        $yz2=strpos($loginym,‘登录密码错误‘);        $yz3=strpos($loginym,‘输入验证码‘);        if($yz!=false){                $returnsid=text_midtext($loginym,‘sid=‘,‘&‘);                return 1;//登录成功        }elseif($yz2!=false){                return 2;//密码错误        }elseif($yz3!=false){                $yzmurl=text_midtext($loginym,‘<img src="http://www.mamicode.com/‘,‘"‘);                return 3;//验证码        }else{                                return $loginym;//都不是的话 就返回源码 看看原因        }}//取出中间文本,1全文本,2左边文本,3右边文本function text_midtext ($str,$left,$right){        $a = explode($left,$str);        $sz2 = $a[1];        $sz1 = explode($right,$sz2);        return $sz1[0];}//post访问网页,1post地址,2post数据,3cookie  服务器需要curl的zhi‘cfunction post($str1,$str2,$cookie){        $ch=curl_init();        curl_setopt($ch,CURLOPT_URL,$str1);        curl_setopt($ch,CURLOPT_HEADER,1);        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);        curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie);        curl_setopt($ch,CURLOPT_POST,1);        curl_setopt($ch,CURLOPT_POSTFIELDS,$str2);        $data=curl_exec($ch);        curl_close($ch);        return $data;}//get网页访问,返回源码function get($url){        $url = eregi_replace(‘^http://‘, ‘‘, $url);        $temp = explode(‘/‘, $url);        $host = array_shift($temp);        $path = ‘/‘.implode(‘/‘, $temp);        $temp = explode(‘:‘, $host);        $host = $temp[0];        $port = isset($temp[1]) ? $temp[1] : 80;        $fp = @fsockopen($host, $port, &$errno, &$errstr, 30);        if ($fp){                @fputs($fp, "GET $path HTTP/1.1\r\n");                @fputs($fp, "Host: $host\r\n");                @fputs($fp, "Accept: */*\r\n");                @fputs($fp, "Referer: http://$host/\r\n");                @fputs($fp, "User-Agent: TTMobile/09.03.18/symbianOS9.1 Series60/3.0 Nokia6120cAP3.03\r\n");                @fputs($fp, "Connection: Close\r\n\r\n");        }        $Content = ‘‘;        while ($str = @fread($fp, 4096))        $Content .= $str;        @fclose($fp);        return $Content;}?>

 

(转载)分享一个昨天写的,3GQQ登录及取回sid的php源代码,内涵post/get访问网页的源代码。