利用PHP扩展vld查看PHP opcode操作步骤


Posted in PHP onMarch 04, 2013

首先下载最新版vld扩展:

~/public_html/php-5.3.13/ext> wget http://pecl.php.net/get/vld-0.11.2.tgz 
~/public_html/php-5.3.13/ext> tar zxvf vld-0.11.2.tgz 
~/public_html/php-5.3.13/ext> cd vld-0.11.2/

接下来编译安装vld扩展:
~/public_html/php-5.3.13/ext/vld-0.11.2> phpize 
~/public_html/php-5.3.13/ext/vld-0.11.2> ./configure --with-php-config=/usr/local/services/php/bin/php-config --enable-vld 
~/public_html/php-5.3.13/ext/vld-0.11.2> make 
~/public_html/php-5.3.13/ext/vld-0.11.2> sudo make install 
Installing shared extensions: /usr/local/services/php/lib/php/extensions/no-debug-non-zts-20090626/

最后将生成的vld.so复制到extension_dir目录下:
~/public_html/php-5.3.13/ext/vld-0.11.2> cd /usr/local/services/php/lib/php/extensions/no-debug-non-zts-20090626/ 
/usr/local/services/php/lib/php/extensions/no-debug-non-zts-20090626> sudo cp vld.so /usr/local/services/php/extensions/

然后修改php.ini文件,添加如下配置:
extension=vld.so

接下来创建test.php文件:
<?php 
$a = "hello world"; 
echo $a . PHP_EOL;

使用cli来执行,查看生成的opcode:
~/public_html> php -dvld.active=1 test.php 
Finding entry points 
Branch analysis from position: 0 
Return found 
filename: /home/zhanhailiang/public_html/test.php 
function name: (null) 
number of ops: 4 
compiled vars: !0 = $a 
line # * op fetch ext return operands 
--------------------------------------------------------------------------------- 
3 0 > ASSIGN !0, 'hello+world' 
5 1 CONCAT ~1 !0, '%0A' 
2 ECHO ~1 
6 3 > RETURN 1 
branch: # 0; line: 3- 6; sop: 0; eop: 3 
path #1: 0, 
hello world
PHP 相关文章推荐
php调用mysql存储过程
Feb 14 PHP
PHP截取汉字乱码问题解决方法mb_substr函数的应用
Mar 30 PHP
PHP 数据结构 算法描述 冒泡排序 bubble sort
Jul 10 PHP
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
Jul 03 PHP
php与java通过socket通信的实现代码
Oct 21 PHP
PHP实现无限极分类图文教程
Nov 25 PHP
WebQQ最新登陆协议的用法
Dec 22 PHP
ThinkPHP路由机制简介
Mar 23 PHP
最新最全PHP生成制作验证码代码详解(推荐)
Jun 12 PHP
PHP读书笔记_运算符详解
Jul 01 PHP
PHP文件操作详解
Dec 30 PHP
浅谈PHP中new self()和new static()的区别
Aug 11 PHP
PHP对MongoDB[NoSQL]数据库的操作
Mar 01 #PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
Feb 28 #PHP
Apache中php.ini的设置方法
Feb 28 #PHP
PHP中如何定义和使用常量
Feb 28 #PHP
使用php判断浏览器的类型和语言的函数代码
Feb 28 #PHP
CI框架源码阅读,系统常量文件constants.php的配置
Feb 28 #PHP
PHP删除非空目录的函数代码小结
Feb 28 #PHP
You might like
超外差式晶体管收音机的组装与统调
2021/03/01 无线电
PHP错误和异常处理功能模块示例
2016/11/12 PHP
javascript之更有效率的字符串替换
2008/08/02 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
js中split和replace的用法实例
2015/02/28 Javascript
jQuery实现冻结表头的方法
2015/03/09 Javascript
5个最顶级jQuery图表类库插件【jquery插件库】
2016/05/05 Javascript
js 上传文件预览的简单实例
2016/08/16 Javascript
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
2020/11/30 Javascript
vue-lazyload图片延迟加载插件的实例讲解
2018/02/09 Javascript
JavaScript比较同一天的时间大小实例代码
2018/02/09 Javascript
jQuery动态移除与增加onclick属性的方法详解
2018/06/07 jQuery
如何在vue里面优雅的解决跨域(路由冲突问题)
2019/01/20 Javascript
[01:01:43]EG vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
Python中的测试模块unittest和doctest的使用教程
2015/04/14 Python
Python多进程分块读取超大文件的方法
2016/04/13 Python
python中正则表达式的使用方法
2018/02/25 Python
tensorflow 1.0用CNN进行图像分类
2018/04/15 Python
pyhanlp安装介绍和简单应用
2019/02/22 Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
2020/02/27 Python
pandas中ix的使用详细讲解
2020/03/09 Python
Python scrapy爬取小说代码案例详解
2020/07/09 Python
澳大利亚家具和家居用品在线商店:Interiors Online
2018/03/05 全球购物
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
医生自荐信
2013/10/11 职场文书
毕业生应聘幼儿园的自荐信
2013/11/20 职场文书
拾金不昧的表扬信
2014/01/16 职场文书
学校党的群众路线教育实践活动总结报告
2014/07/03 职场文书
运动会广播稿150字(9篇)
2014/09/20 职场文书
乡镇领导班子批评与自我批评材料
2014/09/23 职场文书
教师党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
反邪教警示教育活动总结
2015/05/09 职场文书
中学后勤工作总结2015
2015/07/22 职场文书
女方家长婚礼答谢词
2015/09/29 职场文书
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP
SQL实战演练之网上商城数据库商品类别数据操作
2021/10/24 MySQL