PHP网页编程之用PHP写的QQ Client,可以上岸、登出、...
怎么样出来了吧,怎么样自己也可以写出php程序了,虽然离职业和专业的人还有很远,但是好的开始是成功的一半。这个时候改怎么做了呢。现在就是拿1本高手推荐的书,重头到尾读1遍,我说的这个读是自己看。client 作者:Hackfan来历:http://blog.hackfan.net/
2005.8.18
QQ客户端,利用腾讯tqq.tencent.com:8000 HTTP接口
参考文章:http://spaces.msn.com/members/mprogramer
利用到的类:
Advanced HTTP Client
中文编码纠合类库
类接口:
初始化类:
$qq = new QQClient('106814','password');
上岸:
$qq -> login();
参数:
void
前往:
办事器前往胜利:
上岸胜利:QQ_LOGIN_SUCCESS
上岸掉败:QQ_LOGIN_FAILED
同时,全局变量$QQ_ERROR_MSG纪录了办事器前往的毛病申明
办事器前往掉败:QQ_RETURN_FAILED
取得密友列表:
$qq -> getFriendsList();
参数:
void
前往:
胜利:
array
(
QQ号码,
)
掉败:QQ_RETURN_FAILED
取得在线列表:
$qq -> getOnlineList();
参数:
void
前往:
胜利:
密友数 > 0
array
(
array
(
"UN" => QQ号码,
"NK" => QQ昵称,
"ST" => QQ形态,
"FC" => QQ头像
),
)
关于ST:
10为上线QQ_STATUS_ONLINE,20为离线QQ_STATUS_OFFLINE,30为劳碌QQ_STATUS_BUSY
关于FC:
FC为QQ头像的的ID,如的头像ID为270,那末其头利用的图片为91.bmp,其算法为FC/3+1
密友数 = 0
QQ_LIST_NONE
毛病:
!(在线密友数==在线密友昵称数==在线密友形态数==在线密友头像数):QQ_LIST_ERROR
掉败:QQ_RETURN_FAILED
取得号码信息:
$qq -> getInfo('106814');
参数:
string QQ号码
前往:
胜利:
array
(
'AD' => ,//接洽地址
'AG' => ,//岁数
'BT' => ,//血型
'CO' => ,//星座
'CT' => ,//城市
'CY' => ,//国度
'EM' => ,//Email
'FC' => ,//头像
'HP' => ,//网站
'JB' => ,//职业
'MO' => ,//挪动德律风
'PC' => ,//邮编
'PH' => ,//接洽德律风
'PR' => ,//简介
'PV' => ,//省
'RN' => ,//真实姓名
'SC' => ,//卒业院校
'SX' => ,//性别
'UN' => ,//QQ号
'NK' => //昵称
)
掉败:QQ_RETURN_FAILED
添加密友:
$qq -> addFriend( '106814' );
参数:
string QQ号码
前往:
胜利:
对方答应任何人加为密友:QQ_ADDTOLIST_SUCCESS;
需求验证:QQ_ADDTOLIST_NEEDAUTH;
不答应任何人加为密友:QQ_ADDTOLIST_REFUSE;
未知的代码:QQ_ADDTOLIST_UNKNOWN;
掉败:QQ_RETURN_FAILED
验证:
$qq -> replyAdd( '106814' , TYPE, MSG );
参数:
string QQ号码
enum(0,1,2) 类型
*0暗示“经由过程验证”,1暗示“拒决加为对方为密友”,2暗示“为恳求对方加为密友”
string 来由
前往:
胜利:QQ_RETURN_SUCCESS
掉败:QQ_RETURN_FAILED
删除密友:
$qq -> delFriend( '106814' );
参数:
string QQ号码
前往:
胜利:QQ_RETURN_SUCCESS
掉败:QQ_RETURN_FAILED
改动形态:
$qq -> changeStatus( QQ_STATUS );
参数:
enum(QQ_STATUS_ONLINE,QQ_STATUS_OFFLINE,QQ_STATUS_BUSY) 类型
前往:
胜利:QQ_RETURN_SUCCESS
掉败:QQ_RETURN_FAILED
登出:
$qq -> logout();
参数:
void
前往:
胜利:QQ_RETURN_SUCCESS
掉败:QQ_RETURN_FAILED
吸收信息:
$qq -> getMsg();
参数:
void
前往:
动静数 > 0
array
(
array
(
"MT" => 动静类型,
"UN" => 发送者号码,
"MG" => 动静内容
),
)
关于MT:
9为用户动静,99为体系动静,2为恳求信息,3为经由过程验证,4为回绝被加密友
关于MG:
当MT=9时,MG为用户发送的动静内容
当MT=99时,
MG=10(QQ_STATUS_ONLINE)暗示对方上线
MG=20(QQ_STATUS_OFFLINE)暗示对方下线
MG=30(QQ_STATUS_BUSY)暗示对方进入劳碌形态
当MT=2时,MG为恳求验证的信息
当MT=3时,MG为?
当MT=4时,MG为回绝来由
密友数 = 0
QQ_LIST_NONE
毛病:
!(在线密友数==在线密友昵称数==在线密友形态数==在线密友头像数):QQ_LIST_ERROR
掉败:QQ_RETURN_FAILED
发送信息:
$qq -> sendMsg($uin,$msg);
参数:
前往:
胜利:QQ_RETURN_SUCCESS
掉败:QQ_RETURN_FAILED
注释:
QQ_RETURN_SUCCESS暗示办事器前往履行胜利的信息
QQ_RETURN_FAILED暗示办事器没有准确前往或前往没有准确履行
本代码处于调试形态,当办事器没有准确前往的时分,将会打印出具体的信息
运转:保举在Console形式下运转本法式,不建议利用WebServer运转。
不断巩固,摸透大部分PHP常用函数,并可理解OOP,MYSQL优化,以及模板 为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。 php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。 至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。 对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。 曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ; 写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。 使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。 当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标, 真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎, 曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ; Ps:以上纯属原创,如有雷同,纯属巧合 开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。 作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。 爱上php,他也会爱上你。 如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域, 建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。 兴趣是最好的老师,百度是最好的词典。 对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
页:
[1]