ホームページ  >  記事  >  バックエンド開発  >  Friends.com の QQ 関連の PHP コード (QQ を学ぶための優れた情報)、php は優れています_PHP チュートリアル

Friends.com の QQ 関連の PHP コード (QQ を学ぶための優れた情報)、php は優れています_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:09:00937ブラウズ

Friends NetworkのQQ関連のPHPコード(QQを勉強するための素晴らしい情報)、phpは素晴らしいです

コードをコピーします コードは次のとおりです:

/***************************************

***************************************/
error_reporting(E_ALL ^ E_NOTICE);

require_once( 'http.inc.php' );
require_once( 'class. Chinese.php');


//成功2xx
    定義( 'QQ_RETURN_SUCCESS', 200 );
    定義( 'QQ_LOGIN_SUCCESS', 201 );
    定義( 'QQ_LIST_NONE', 202 );
    定義( 'QQ_ADDTOLIST_SUCCESS', 203 );
    定義( 'QQ_REPLYADD_SUCCESS', 204 );
    定義( 'QQ_GETMSG_NONE', 205 );

//警告3xx
    定義( 'QQ_ADDTOLIST_NEEDAUTH',300 );
    定義( 'QQ_ADDTOLIST_REFUSE', 301 );
    定義( 'QQ_ADDTOLIST_UNKNOWN', 302 );

//失败4xx
    定義( 'QQ_RETURN_FAILED', 400 );
    定義( 'QQ_LIST_ERROR', 401 );
    定義( 'QQ_GETMSG_ERROR', 402 );

//在中状態
    定義( 'QQ_STATUS_ONLINE', 10);
    定義( 'QQ_STATUS_OFFLINE', 20);
    定義( 'QQ_STATUS_BUSY', 30);

//血型
    $QQ_DATA_BT = 配列
        (
=> ”、
=> 「A型」
=> 「B型」、
=> 「O型」
=> 「AB型」
=> 「その他」
        );

//星座
    $QQ_DATA_CO = 配列
        (
=> ”、
=> 「水瓶座」
=> 「双鱼座」、
=> 「牡羊座」、
=> 「金牛座」
=> 「双子座」
=> 「巨蟹座」
=> 「狮子座」
=> 「处女座」
=> 「天秤座」
=> 「天蝎座」
=> 「射手座」、
=> 『摩羯座』
        );

//生ショウ
    $QQ_DATA_SH = 配列
        (
=> ”、
=> 「ネズミ」、
=> 「牛」
=> 「虎」
=> 「兔」、
=> 「龙」、
=> 「蛇」
=> 「马」、
=> 「羊」
=> 「猴」、
=> 「鸡」、
=> 「犬」、
=> 「猪」
        );

//性别
    $QQ_DATA_SX = 配列
        (
=> 「男」、
=> 「女」
        );

クラスQQクライアント
{
    var $uin;
    var $pwd;

var $server = 'kconn.tencent.com';
    //备用:219.133.51.11
    var $port = 21001;
    //备用:8000
    var $httpclient;
    var $chs = NULL;

関数 QQClient($uin,$pwd)
    {
        $this->uin = $uin;
        $this->pwd = $pwd;
    }

関数エンコード($str)
    /*
        说説明:ハンドルKEY1=VAL1&KEY2=VAL2格式变は数組
    */
    {
        $arr =explode('&' , $str);
        $return = array();
        foreach($arr as $k=>$v)
        {
            list($key,$val) =explode('=',$v);
            $return[$key] = $val;
            $this->chs = NULL;
        }
        $return;
を返す     }

関数 utf8_to_gb2312($str)
    {
        $this->chs = 新しい中国語("UTF8","GB2312", $str );
        return $this->chs->ConvertIT();
    }

関数 gb2312_to_utf8($str)
    {
        $this->chs = 新しい中国語("GB2312","UTF8", $str );
        return $this->chs->ConvertIT();
    }

関数クエリ($str)
    {
        $this->httpclient = 新しい http( HTTP_V11, true );
        $this->httpclient->host = 'kconn.tencent.com';
        $this->httpcilent->ポート = 21001;

$query = $this->encode($str);
        $status = $this->httpclient->post( '', $query, '' );
        if ( $status == HTTP_STATUS_OK ) {
            return $this->httpclient->get_response_body();
        }
        それ以外
        {
            print_r($this->httpclient);
            false を返します;
        }
        $this->httpclient->disconnect();
        unset($this->httpclient);
    }

関数 split_str($str)
    {
        $arr =explode("," , $str);
        if($arr[count($arr)-1] == NULL)
        {
            unset($arr[count($arr)-1]);
        }
        $arr を返します;
    }

関数login()
    {
        //登陆
        //VER=1.1&CMD=ログイン&SEQ=&UIN=&PS=&M5=1&LC=9326B87B234E7235
        $str = "VER=1.1&CMD=Login&SEQ=".rand(1000,9000)."&UIN=".$this->uin."&PS=".md5($this->pwd)."&M5= 1&LC=9326B87B234E7235";
        $return = $this->encode($this->query($str));
        if($return['RES']==0 および $return['UIN'] == $this->uin)
        {
            //成功
を返す             if($return['RS']==0)
            {
                //登陆成功
                QQ_LOGIN_SUCCESS を返します;
            }
            それ以外
            {
                //登陆失败
                $GLOBALS['QQ_ERROR_MSG'] = $this->utf8_to_gb2312($return['RA']);
                QQ_LOGIN_FAILED を返す;
            }
        }
        それ以外
        {
            //失敗した
を返します             QQ_RETURN_FAILED を返す;
           
        }
    }

関数getFriendsList()
{
//友達リストを取得
//VER=1.1&CMD=リスト&SEQ=&UIN=&TN=160&UN=0
$str = "VER=1.1&CMD=List&SEQ=".rand(1000,9000)."&UIN=".$this->uin."&TN=160&UN=0";
$return = $this->encode($this->query($str));
If($return['RES']==0 かつ $return['UIN'] == $this->uin)
{
//正常に戻りました
return $this->split_str($return['UN']);
}
その他
{
//リターン失敗
return QQ_RETURN_FAILED;
                                                }
}

関数getOnlineList()
{
//オンライン友達のリストを取得します
//VER=1.1&CMD=Query_Stat&SEQ=&UIN=&TN=50&UN=0
$str = "VER=1.1&CMD=Query_Stat&SEQ=".rand(1000,9000)."&UIN=".$this->uin."&TN=50&UN=0";
$return = $this->encode($this->query($str));
If($return['RES']==0 かつ $return['UIN'] == $this->uin)
{
//正常に戻りました
If($return['SN'] > 0)
{
//オンライン友達の数>0
$uns = $this->split_str($return['UN']); $nks = $this->split_str($return['NK']); // ニックネームリスト
$sts = $this->split_str($return['ST']); //ステータスリスト
$fcs = $this->split_str($return['FC']); //アバターリスト
$error = 0;
((count($uns)==count($nks))==(count($sts)==count($fcs)))==(count($nks)==count($sts)) ?
$num = count($uns)
: $error = 1;
;
If($error == 1) は QQ_LIST_ERROR を返します;
$arr = array();
for($i=0;$i {
$arr[] = array(
"UN" => $uns[$i] ,
"NK" => $this->utf8_to_gb2312($nks[$i]) 、
"ST" => $sts[$i] ,
"FC" => $fcs[$i]
);
}
return ($arr);
}
その他
{
//オンライン友達の数 QQ_LIST_NONE を返します;
}
                                                }
その他
{
//リターン失敗
return QQ_RETURN_FAILED;
                                                          }
}

関数getInfo($uin)
{
//友達情報を取得します
//ADは連絡先アドレス、AGは年齢、EMはMAIL、FCはアバター、HPはウェブサイト、JBは職業、PCは郵便番号、PHは連絡先番号、PRはプロフィール、 PVは州、RNは本名、SCは出身校、SXは性別、UNはQQ番号、NKはQQのニックネームです
//Hackfan による以下のアノテーションの研究
//BTは血液型、COは星座、CTは都市、CYは国、MOは携帯電話、SHは星座
//LV はクエリする番号です (1 は簡易クエリ、2 は通常のクエリ、3 は詳細クエリ)
//CV不明、ID不明(IDカード?)、MT不明、MV不明、
//VER=1.1&CMD=GetInfo&SEQ=&UIN=&LV=3&UN=
$str = "VER=1.1&CMD=GetInfo&SEQ=".rand(1000,9000)."&UIN=".$this->uin."&LV=3&UN=".$uin;
$return = $this->encode($this->query($str));
If($return['RES']==0 かつ $return['UIN'] == $this->uin)
{
//正常に戻りました
$arr = 配列
(
'Ad' = & gt; $this-> UTF8_TO_GB2312 ($ Return ['Ad']), // 連絡先アドレス
; 'Ag' = & gt; $ this- & gt; ($ Return ['ag']), // 年齢



'Bt' = & gt; $ Return ['bt'], // 血液型
'CO' => 'Ct' = & gt; $ this- & gt; ($ Return ['ct']), // 都市
; 'Cy' = & gt; $ this- & gt; ($ Return ['cy']), // 'Em' = & gt; $ this-& gt; ($ Return ['em']), // メール
; 'Fc' = & gt; $ Return ['fc'], // アバター
; 'Hp' = & gt; $ this- & gt; ($ Return ['hp']), // ウェブサイト
; 'Jb' = & gt; $ this-& gt; ($ Return ['jb']), // 職業
; 'Mo' = & gt; $ Return ['mo'], // 携帯電話
「PC」 => 'PH' = & gt; $ this- & gt; ($ Return ['ph']), // 'PR' = & gt; $ this- & gt; ($ Return ['PR']), // はじめに
「PV」 => 'Rn' = & gt; $ this-& gt; ($ Return ['rn']), // 本名
; 'SC' = & GT; $this-> UTF8_TO_GB2312 ($ Return ['SC']), // 大学
; 'Sh' = & gt; $ return ['sh'], // 星座
; 'SX' => 「国連」 => 'Nk' = & gt; $ this- & gt; ($ Return ['nk']) // ニックネーム
; );
return $arr;
}
その他
{
//リターン失敗
return QQ_RETURN_FAILED;
                                                          }

}

関数addFriend($uin)
{
//新しい友達を追加します
//VER=1.1&CMD=AddToList&SEQ=&UIN=&UN=
$str = "VER=1.1&CMD=AddToList&SEQ=".rand(1000,9000)."&UIN=".$this->uin."&UN=".$uin;
$return = $this->encode($this->query($str));
If($return['RES']==0 かつ $return['UIN'] == $this->uin)
{
//正常に戻りました
switch($return['CD'])
{
ケース0:
//相手は誰でも友達追加を許可しています
QQ_ADDTOLIST_SUCCESS を返します;
休憩;
ケース 1:
アウトアウト - から QQ_ADDTOLIST_NEEDAUTH を返します;
休憩;
ケース 3:
//誰も友達として追加することはできません
return QQ_ADDTOLIST_REFUSE;
休憩;
                                                                                                                                                                                                                                          //不明なコード
QQ_ADDTOLIST_UNKNOWN を返します;
休憩;
}
}
その他
{
//リターン失敗
return QQ_RETURN_FAILED;
}
}

関数 ReplyAdd($uin,$type,$msg)
{
// 友達追加に応答します
//VER=1.1&CMD=Ack_AddToList&SEQ=&UIN=&UN=&CD=&RS=
//CD は応答ステータスで、CD 0 は「検証に合格」を意味します。 CDが1の場合は「相手の友達追加を拒否する」という意味になります。 CDが2というのは「相手に友達追加をリクエストする」という意味です。 RSがあなたのリクエストの理由です
$str = "VER=1.2&CMD=Ack_AddToList&SEQ=".rand(1000,9000)."&UIN=".$this->uin."&UN=".$uin."&CD=".$type."&RS =".$this->gb2312_to_utf8($msg);
$return = $this->encode($this->query($str));

If($return['RES']==0 かつ $return['UIN'] == $this->uin)
{
//サーバーは情報を正常に取得しました
return QQ_RETURN_SUCCESS;
}
その他
{
//失敗しました
return QQ_RETURN_FAILED; }
}

関数delFriend($uin)

{
//友達を削除
//VER=1.1&CMD=DelFromList&SEQ=&UIN=&UN=
$str = "VER=1.1&CMD=DelFromList&SEQ=".rand(1000,9000)."&UIN=".$this->uin."&UN=$uin";
$return = $this->encode($this->query($str));
If($return['RES']==0 かつ $return['UIN'] == $this->uin)
{
//サーバーは情報を正常に取得しました
return QQ_RETURN_SUCCESS;
}
その他
{
//失敗しました
return QQ_RETURN_FAILED;
}
}

関数changeStatus($status)

{
//ステータスを変更します
//VER=1.1&CMD=Change_Stat&SEQ=&UIN=&ST=
//STは変更するステータス、10はオンライン、20はオフライン、30はビジーです。
$str = "VER=1.1&CMD=Change_stat&SEQ=".rand(1000,9000)."&UIN=".$this->uin."&ST=".$status;
$return = $this->encode($this->query($str));
If($return['RES']==0 かつ $return['UIN'] == $this->uin)
{
//サーバーは情報を正常に取得しました
return QQ_RETURN_SUCCESS;
}
その他
{
//失敗
return QQ_RETURN_FAILED;
}
}

関数logout()
{
//ログアウト
//VER=1.1&CMD=ログアウト&SEQ=&UIN=
$str = "VER=1.1&CMD=Logout&SEQ=".rand(1000,9000)."&UIN=".$this->uin;
$return = $this->encode($this->query($str));
If($return['RES']==0 かつ $return['UIN'] == $this->uin)
{
//サーバーは情報を正常に取得しました
return QQ_RETURN_SUCCESS;
}
その他
{
//失敗
return QQ_RETURN_FAILED;
}
}

関数getMsg()
{
//ニュースを入手
//VER=1.1&CMD=GetMsgEx&SEQ=&UIN=
//MT はメッセージ タイプを表し、99 はシステム メッセージを表し、9 はユーザー メッセージを表します。 UN はメッセージの送信元のユーザーを表し、MG は送信されたメッセージを表し、MG メッセージは特定のシステムの意味を表すことができます
//MT=99 の場合: MG=10 はユーザーがオンラインであることを意味し、MG=20 はユーザーがオフラインであることを意味し、MG=30 はユーザーがビジーであることを意味します
$str = "VER=1.1&CMD=GetMsgEx&SEQ=".rand(1000,9000)."&UIN=".$this->uin;
$return = $this->encode($this->query($str));
If($return['RES']==0 かつ $return['UIN'] == $this->uin)
{
//サーバーは情報を正常に取得しました
If($return['MN'] > 0)
{
//メッセージ数>0
$mts = $this->split_str($return['MT']); $uns = $this->split_str($return['UN']); //送信者番号
$mgs = $this->split_str($return['MG']); //メッセージ内容
$error = 0;
(カウント($mts)==カウント($uns))==(カウント($uns)==カウント($mgs))?
$num = count($uns)
                               $error = 1;
;
If($error == 1) return QQ_GETMSG_ERROR //何か問題が発生しました
; $arr = array();
for($i=0;$i {
$arr[] = array(
"MT" => $mts[$i] 、
"UN" => $uns[$i] ,
"MG" => $this->utf8_to_gb2312($mgs[$i])
);
}
return ($arr);
}
その他
{
//オンライン友達の数 QQ_GETMSG_NONE を返します;
}
}
その他
{
//失敗
return QQ_RETURN_FAILED;
}
}

関数 sendMsg($uin,$msg)
{
//メッセージを送信
//VER=1.1&CMD=CLTMSG&SEQ=&UIN=&UN=&MG=
$str = "VER=1.1&CMD=CLTMSG&SEQ=".rand(1000,9000)."&UIN=".$this->uin."&UN=".$uin."&MG=".$this-> gb2312_to_utf8($msg);
$return = $this->encode($this->query($str));
If($return['RES']==0 かつ $return['UIN'] == $this->uin)
{
//サーバーは情報を正常に取得しました
return QQ_RETURN_SUCCESS;
}
その他
{
//失敗
return QQ_RETURN_FAILED;
}
}

}
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/947916.html技術記事 Friends Network の QQ 関連の PHP コード (QQ の学習に最適な情報) について、優れた PHP コピー コードは次のとおりです: /*********************** * *************** ********************************* * ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。