基于WebQQ3.0协议写一个QQ机器人
一个偶然的机会,在某群看到一个类似QQ机器人的玩意在骚动,问那哥们回答说是JAVA写的,原来QQ还能这样玩儿。于是乎,我也就开始骚动了。Let’s go
1.WEBQQ3.0登陆协议
进入WEBQQ, http://web.qq.com/
通过工具分析,可以知道,用户在输入密码之前(也就是输入[……]
一个偶然的机会,在某群看到一个类似QQ机器人的玩意在骚动,问那哥们回答说是JAVA写的,原来QQ还能这样玩儿。于是乎,我也就开始骚动了。Let’s go
进入WEBQQ, http://web.qq.com/
通过工具分析,可以知道,用户在输入密码之前(也就是输入[……]
如果你需要检查给定的PHP模块/扩展是否存在,下面一行代码就能派上用场,不需要使用phpinfo()。
检查现有的模块:
$ php -m | grep xdebug | wc -l 1 |
检查不存在的模块:
$ php -m | grep mongo | wc -l 0 |
[……]
查看PHP函数的源代码时非常有用
#!/usr/bin/php[......]<p class="read-more"><a href="https://www.fengdingbo.com/php-get-function-module.html">Read more</a></p> |
pcntl_fork — 在当前进程当前位置产生分支(子进程)。译注:fork是创建了一个子进程,父进程和子进程都从fork的位置开始向下继续执行,不同的是父进程执行过程中,得到的fork返回值为子进程号,而子进程得到的是0。
#!/usr/bin/php[......]<p class="read-more"><a href="https://www.fengdingbo.com/php-fork-download-webpage-image.html">Read more</a></p> |
目前已支持新浪播客、优酷网、土豆网、酷6网、搜狐视频、56网、奇艺网、凤凰网等视频网站的视频播放页链接。
PHP API调用实例:http://fengdingbo.com/tools/web_video.php?url=视频页面地址[……]
flock – 轻便的咨询文件锁定
flock()函数原型
bool flock ( int handle, int operation [, int &wouldblock] )
PHP 支持以咨询方式(也就是说所有访问程序必须使用同一方式锁定, 否则它不会工作)锁定全部[……]
官方给的原型:
array get_defined_constants ([ bool $categorize = false ] )
下边是人类的理解:
get_defined_constants(true)
参数为TRUE时:返回一个多维数组,分类为第一维的键名,常量和它们的值位于第二维。
get_defined_constants() e.g #1:
PHP打印所有常量
…
get_defined_constants() e.g #2:
PHP打印用户自定义常量:
…
get_defined_constants() e.g #3:
PHP给定一个常量值,返回常量名称:
…
get_defined_constants() e.g #4:
如果你想过滤,并按常量的前缀来查询(即你已经有一套常量的命名方案),那么你可以使用这个小巧的功能,进行简单的调试:[……]
一听到这个功能需求的时候,立即就蒙了,俺一直以为socket是C/S架构里边的东西,俺错了,俺有罪,俺应该主动蹲墙角去。。。
以前模拟post请求俺都用PHP curl扩展实现来着,没想过PHP socket也可以实现。最近翻了下相关资料才发现原来没有那么高深,只是以前一直没有完全理解post的原[……]
测试环境:Ubuntu12.04+PHP 5.3.10
# 获取xdebug最新源码包 git clone git://github.com/derickr/xdebug.git cd xdebug/ # 如果没有安装phpize扩展,请尝试:apt-get install phpize phpize ./configure --enable-xdebug make && make install |
我这边生成的路径为:/usr/lib/php5/20090626+lfs/xdebug.so
然后更改php.ini文件
自行选择增加这些配置选项[……]