利用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 MSSQL 存储过程的方法
Dec 24 PHP
PHP mb_convert_encoding 获取字符串编码类型实现代码
Apr 26 PHP
PHP的变量总结 新手推荐
Apr 18 PHP
PHP学习笔记 用户注册模块用户类以及验证码类
Sep 20 PHP
Zend的MVC机制使用分析(一)
May 02 PHP
php根据年月获取季度的方法
Mar 31 PHP
php实现购物车功能(上)
Jul 23 PHP
基于laravel制作APP接口(API)
Mar 15 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
Mar 17 PHP
php设计模式之策略模式应用案例详解
Jun 17 PHP
对laravel in 查询的使用方法详解
Oct 09 PHP
laravel 执行迁移回滚示例
Oct 23 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
php 中文字符入库或显示乱码问题的解决方法
2010/04/12 PHP
IIS安装Apache伪静态插件的具体操作图文
2013/07/01 PHP
ThinkPHP开发--使用七牛云储存
2017/09/14 PHP
php格式文件打开的四种方法
2018/02/24 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
总结AJAX相关JS代码片段和浏览器模型
2007/08/15 Javascript
用jquery与css打造个性化的单选框和复选框
2010/10/20 Javascript
解读JavaScript代码 var ie = !-[1,] 最短的IE判定代码
2011/05/28 Javascript
JS左右无缝滚动(一般方法+面向对象方法)
2012/08/17 Javascript
用javascript模仿ie的自动完成类似自动完成功的表单
2012/12/12 Javascript
jquery form 加载数据示例
2014/04/21 Javascript
javascript定时器取消定时器及优化方法
2017/07/08 Javascript
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
全选复选框JavaScript编写小结(附代码)
2017/08/16 Javascript
史上最全JavaScript数组去重的十种方法(推荐)
2017/08/17 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
layer弹出子iframe层父子页面传值的实现方法
2018/11/22 Javascript
Antd表格滚动 宽度自适应 不换行的实例
2020/10/27 Javascript
跟老齐学Python之有容乃大的list(1)
2014/09/14 Python
python操作ie登陆土豆网的方法
2015/05/09 Python
Python中遍历字典过程中更改元素导致异常的解决方法
2016/05/12 Python
Python画图学习入门教程
2016/07/01 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
2018/04/19 Python
Python解决走迷宫问题算法示例
2018/07/27 Python
python使用xlsxwriter实现有向无环图到Excel的转换
2018/12/12 Python
python的pytest框架之命令行参数详解(下)
2019/06/27 Python
如何使用python把ppt转换成pdf
2019/06/29 Python
TensorFlow的reshape操作 tf.reshape的实现
2020/04/19 Python
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
公务员的自我鉴定
2013/10/26 职场文书
考试作弊检讨书大全
2014/02/18 职场文书
小学中等生评语
2014/12/29 职场文书
五一劳动节活动总结
2015/02/09 职场文书
电气工程师岗位职责
2015/02/12 职场文书
慈善献爱心倡议书
2015/04/27 职场文书
护士医德医风心得体会
2016/01/25 职场文书