仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1746|回复: 20
打印 上一主题 下一主题

[学习教程] PHP编程:QQ聊天机械人for PHP版 (登录,收、发消...

[复制链接]
逍遥一派 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:30:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我的这套线路可能跟许多学习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:09 | 只看该作者
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
海妖 该用户已被删除
板凳
发表于 2015-2-8 08:22:02 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
灵魂腐蚀 该用户已被删除
地板
发表于 2015-2-25 02:45:44 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
爱飞 该用户已被删除
5#
发表于 2015-3-3 16:43:56 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
小女巫 该用户已被删除
6#
发表于 2015-3-8 09:05:55 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
再现理想 该用户已被删除
7#
发表于 2015-3-11 09:15:24 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
第二个灵魂 该用户已被删除
8#
发表于 2015-3-13 03:03:29 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
活着的死人 该用户已被删除
9#
发表于 2015-3-20 10:44:07 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
蒙在股里 该用户已被删除
10#
发表于 2015-3-24 22:18:50 | 只看该作者
当然这种网站的会员费就几十块钱。
因胸联盟 该用户已被删除
11#
发表于 2015-4-3 04:33:14 | 只看该作者
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
分手快乐 该用户已被删除
12#
发表于 2015-4-4 02:01:03 | 只看该作者
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
飘灵儿 该用户已被删除
13#
发表于 2015-4-11 05:10:10 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
老尸 该用户已被删除
14#
发表于 2015-4-16 00:34:39 | 只看该作者
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
不帅 该用户已被删除
15#
发表于 2015-4-25 15:29:02 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
16#
发表于 2015-5-1 08:11:50 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
山那边是海 该用户已被删除
17#
发表于 2015-5-6 00:50:53 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
透明 该用户已被删除
18#
发表于 2015-5-6 17:54:42 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
逍遥一派 该用户已被删除
19#
 楼主| 发表于 2015-5-10 01:04:22 | 只看该作者
爱上php,他也会爱上你。
兰色精灵 该用户已被删除
20#
发表于 2015-6-6 04:19:10 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-13 11:58

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表