仓酷云

标题: 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