仓酷云
标题:
PHP编程:QQ聊天机械人for PHP版 (登录,收、发消...
[打印本页]
作者:
逍遥一派
时间:
2015-2-3 23:30
标题:
PHP编程:QQ聊天机械人for PHP版 (登录,收、发消...
我的这套线路可能跟许多学习PHP的爱好者不谋而合,这也算是一个循序渐进的学习过程,不过新手不要看到上面的概括就以为学习蛮简单的,默默在此不得不对您稍微泼一下冷水,任何东西其实都不简单。 QQ聊天机械人for PHP版 (登录,收、发动静)
01 <?php 02 // 不多说了,直接上转载请有名出处 php100.com 03 include "http.class.php"; 04 05 class qq { 06 07 public $sid; 08 public $http; 09 public $qq_num; 10 11 function __construct() { 12 $this->http = new http; 13 } 14 15 function login($qq_num, $qq_pwd) { 16 $data = $this->http->get("http://pt.3g.qq.com/"); 17 $action = preg_match("/action=\"(.+)?\"/", $data, $matches); 18 $action = $matches[1]; 19 $params = array(); 20 $params["login_url"] = "http://pt.3g.qq.com/s?aid=nLogin"; 21 $params["sidtype"] = 1; 22 $params["loginTitle"] = "手机腾讯网"; 23 $params["bid"] = 0; 24 $params["qq"] = $qq_num; 25 $params["pwd"] = $qq_pwd; 26 $params["loginType"] =1; 27 $data = $this->http->post($action, http_build_query($params)); 28 if(count(explode("验证码",$data))>1){ 29 preg_match("/<img src=\"(.+?)\"/", $data, $matches); 30 echo $matches[1]; 31 exit("需求输出验证码"); 32 } 33 $action = preg_match("/sid=(.+?)&/", $data, $matches); 34 $this->sid = $matches[1]; 35 return $this->sid; 36 } 37 38 function sendMsg($to_num, $msg, $sid = 0) { 39 $sid = $sid ? $sid : $this->sid; 40 if (!$sid) 41 exit("sid值未传入出来"); 42 $params = array(); 43 $params["msg"] = $msg; 44 $params["u"] = $to_num; 45 $params["saveURL"] = 0; 46 $params["do"] = "send"; 47 $params["on"] = 1; 48 $params["aid"] = "发送"; 49 $url = "http://q16.3g.qq.com/g/s?sid=" . $sid; 50 $data = $this->http->post($url, http_build_query($params)); 51 return $data; 52 } 53 54 function getMsg($qq_num = 0, $sid = 0) { 55 $qq_num = $qq_num ? $qq_num : $this->qq_num; 56 if (!$qq_num) 57 exit("qq_num值未传入出来"); 58 $sid = $sid ? $sid : $this->sid; 59 if (!$sid) 60 exit("sid值未传入出来"); 61 $url = "http://q16.3g.qq.com/g/s?sid=" . $sid . "&3G_UIN=" . $qq_num ."&saveURL=0&aid=nqqChat"; 62 $data = $this->http->get($url); 63 preg_match("/name=\"u\" value=\"(\d+)\"/", $data, $matches); 64 $result["qq"] = $matches[1]; 65 $data = explode("<form", $data); 66 $data = $data[0]; 67 preg_match_all("/<p>(.+)?<\/p>/", $data, $matches); 68 unset($matches[1][0]); 69 $result["content"] = $matches[1]; 70 return $result; 71 } 72 function logout($sid){ 73 $url="http://pt.3g.qq.com/s?sid=".$sid."&aid=nLogout"; 74 75 echo $this->http->get($url); 76 } 77 }
[代码] http.class.php
01 <?php 02 03 class http { 04 05 private $curl; 06 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"; 07 08 09 public function get($url) { 10 $this->curl = curl_init(); 11 curl_setopt($this->curl, CURLOPT_CONNECTTIMEOUT, 20); 12 curl_setopt($this->curl, CURLOPT_URL, $url); 13 curl_setopt($this->curl, CURLOPT_HEADER, 1); 14 curl_setopt($this->curl, CURLOPT_USERAGENT, $this->user_agent); 15 curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, 1); 16 $data = curl_exec($this->curl); 17 curl_close($this->curl); 18 return $data; 19 } 20 21 public function post($url, $params) { 22 $this->curl = curl_init(); 23 curl_setopt($this->curl, CURLOPT_CONNECTTIMEOUT, 20); 24 curl_setopt($this->curl, CURLOPT_URL, $url); 25 curl_setopt($this->curl, CURLOPT_HEADER, 1); 26 //curl_setopt($this->curl, CURLOPT_FOLLOWLOCATION, true); 27 curl_setopt($this->curl, CURLOPT_POST, 1); 28 curl_setopt($this->curl, CURLOPT_USERAGENT, $this->user_agent); 29 curl_setopt($this->curl, CURLOPT_POSTFIELDS, $params); 30 curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, 1); 31 $data = curl_exec($this->curl); 32 curl_close($this->curl); 33 return $data; 34 } 35 36 } 37 38 ?> 39 原文:http://lvxinwei.sinaapp.com/961.html 也许您在学习PHP的时候只想尽快的开发一个网站,也就会想我做网站,干嘛要学什么网页这些小儿科?不难看出,眼高手低的新手不在少数,这种思想无疑于建造空中楼阁,你不建地基,何来的房顶呢?
作者:
冷月葬花魂
时间:
2015-2-4 00:06
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
作者:
海妖
时间:
2015-2-8 08:22
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
作者:
灵魂腐蚀
时间:
2015-2-25 02:45
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
作者:
爱飞
时间:
2015-3-3 16:43
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年 具体的记不清啦,囧。
作者:
小女巫
时间:
2015-3-8 09:05
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
作者:
再现理想
时间:
2015-3-11 09:15
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线 \\\\\\\'_\\\\\\\' ;
作者:
第二个灵魂
时间:
2015-3-13 03:03
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
作者:
活着的死人
时间:
2015-3-20 10:44
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
作者:
蒙在股里
时间:
2015-3-24 22:18
当然这种网站的会员费就几十块钱。
作者:
因胸联盟
时间:
2015-4-3 04:33
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
作者:
分手快乐
时间:
2015-4-4 02:01
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
作者:
飘灵儿
时间:
2015-4-11 05:10
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
作者:
老尸
时间:
2015-4-16 00:34
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
作者:
不帅
时间:
2015-4-25 15:29
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
作者:
仓酷云
时间:
2015-5-1 08:11
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
作者:
山那边是海
时间:
2015-5-6 00:50
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
作者:
透明
时间:
2015-5-6 17:54
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
作者:
逍遥一派
时间:
2015-5-10 01:04
爱上php,他也会爱上你。
作者:
兰色精灵
时间:
2015-6-6 04:19
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
作者:
admin
时间:
2015-6-12 08:36
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2