利用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 相关文章推荐
实现“上一页”和“下一页按钮
Oct 09 PHP
PHP程序员编程注意事项
Apr 10 PHP
PHP SQLite类
May 07 PHP
php $_SERVER当前完整url的写法
Nov 12 PHP
根据中文裁减字符串函数的php代码
Dec 03 PHP
php检测用户是否用手机(Mobile)访问网站的类
Jan 09 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
Jun 05 PHP
CI配置多数据库访问的方法
Mar 28 PHP
php断点续传之文件分割合并详解
Dec 13 PHP
PHP读取并输出XML文件数据的简单实现方法
Dec 22 PHP
Yii2框架redis基本应用示例
Jul 13 PHP
Laravel框架实现的上传图片到七牛功能详解
Sep 06 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 IN_ARRAY 函数使用注意事项
2010/07/24 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
2019/09/18 PHP
js 上传图片预览问题
2010/12/06 Javascript
jquery 追加tr和删除tr示例代码
2013/09/12 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
2014/01/22 Javascript
javascript新闻跑马灯实例代码
2020/07/29 Javascript
javascript产生随机数方法汇总
2016/01/25 Javascript
浅析AMD CMD CommonJS规范--javascript模块化加载学习心得总结
2016/03/16 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
2016/05/10 Javascript
引用jquery框架后出错的解决方法
2016/08/09 Javascript
详解基于angular路由的requireJs按需加载js
2017/01/20 Javascript
bootstrap suggest下拉框使用详解
2017/04/10 Javascript
在vue项目中使用sass的配置方法
2018/03/20 Javascript
js实现图片局部放大效果详解
2019/03/18 Javascript
vue video和vue-video-player实现视频铺满教程
2020/10/30 Javascript
简单的抓取淘宝图片的Python爬虫
2014/12/25 Python
python判断图片宽度和高度后删除图片的方法
2015/05/22 Python
Python实现选择排序
2017/06/04 Python
python机器学习案例教程——K最近邻算法的实现
2017/12/28 Python
Python+matplotlib实现华丽的文本框演示代码
2018/01/22 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
2018/10/18 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
2019/06/28 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
python 使用OpenCV进行简单的人像分割与合成
2021/02/02 Python
美国五金商店:Ace Hardware
2018/03/27 全球购物
Ivory Isle Designs美国/加拿大:婚礼和活动文具公司
2018/08/21 全球购物
南京某软件公司的.net面试题
2015/11/30 面试题
给医务人员表扬信
2014/01/12 职场文书
历史专业学生的自我评价
2014/02/28 职场文书
个人承诺书
2014/03/26 职场文书
市级文明单位申报材料
2014/05/07 职场文书
医院党员公开承诺书
2014/08/30 职场文书
党员个人批评与自我批评
2014/10/14 职场文书
社区五一劳动节活动总结
2015/02/09 职场文书
2015高考寄语集锦
2015/02/27 职场文书
Python爬虫入门案例之爬取去哪儿旅游景点攻略以及可视化分析
2021/10/16 Python