利用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 开发的 8 个技巧
Oct 09 PHP
新手学PHP之数据库操作详解及乱码解决!
Jan 02 PHP
phpMyAdmin 安装教程全攻略
Mar 19 PHP
PHP性能优化准备篇图解PEAR安装
Dec 05 PHP
php中计算程序运行时间的类代码
Nov 03 PHP
体育彩票排列三组选三算法分享
Mar 07 PHP
phpMyAdmin自动登录和取消自动登录的配置方法
May 12 PHP
php+highchats生成动态统计图
May 21 PHP
php输出xml必须header的解决方法
Oct 17 PHP
浅谈PHP表单提交(POST&amp;GET&amp;URL编/解码)
Apr 03 PHP
php中的buffer缓冲区用法分析
May 31 PHP
Laravel手动返回错误码示例
Oct 22 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
《Re:从零开始的异世界生活 冰结之绊》
2020/04/09 日漫
使用PHP获取网络文件的实现代码
2010/01/01 PHP
解析php中mysql_connect与mysql_pconncet的区别详解
2013/05/15 PHP
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
2013/08/01 PHP
php 如何获取数组第一个值
2013/08/06 PHP
PHP往XML中添加节点的方法
2015/03/12 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
js 分页全选或反选标识实现代码
2011/08/09 Javascript
javascript中对Attr(dom中属性)的操作示例讲解
2013/12/02 Javascript
jQuery简单实现页面元素置顶时悬浮效果示例
2016/08/01 Javascript
jQuery实现点击后高亮背景固定显示的菜单效果【附demo源码下载】
2016/09/21 Javascript
从0开始学Vue
2016/10/27 Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
2018/08/12 Javascript
浅谈Express.js解析Post数据类型的正确姿势
2019/05/30 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
2019/11/01 Javascript
微信小程序实现多选框功能的实例代码
2020/06/24 Javascript
vue 避免变量赋值后双向绑定的操作
2020/11/07 Javascript
[08:44]和酒神一起战斗 DOTA2教你做大人
2014/03/27 DOTA
[48:00]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第二场 11.04
2020/11/04 DOTA
python获取网页状态码示例
2014/03/30 Python
关于Django外键赋值问题详解
2017/08/13 Python
python利用OpenCV2实现人脸检测
2020/04/16 Python
pytorch 调整某一维度数据顺序的方法
2018/12/08 Python
dataframe 按条件替换某一列中的值方法
2019/01/29 Python
详解Python利用configparser对配置文件进行读写操作
2020/11/03 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
html5 兼容IE6结构的实现代码
2012/05/14 HTML / CSS
HTML5 Canvas锯齿图代码实例
2014/04/10 HTML / CSS
英国运动服、设备及配件网站:DW Sports
2019/12/04 全球购物
英国电信商店:BT Shop
2019/12/17 全球购物
留学生如何写好自荐信
2013/12/27 职场文书
企业安全生产检查制度
2015/08/06 职场文书
安全生产感想
2015/08/07 职场文书
《牧场之国》教学反思
2016/02/22 职场文书
解决Goland 同一个package中函数互相调用的问题
2021/05/06 Golang
Springboot使用Spring Data JPA实现数据库操作
2021/06/30 Java/Android