利用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过滤危险html代码的函数
Jul 22 PHP
5种PHP创建数组的实例代码分享
Jan 17 PHP
php上传图片获取路径及给表单字段赋值的方法
Jan 23 PHP
PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF
Feb 19 PHP
PHP编写RESTful接口的方法
Feb 21 PHP
php的4种常用运行方式详解
Dec 22 PHP
详解php框架Yaf路由重写
Jun 20 PHP
PHP多进程编程实例详解
Jul 19 PHP
PHP获取星期几的常用方法小结
Dec 18 PHP
PHP文件类型检查及fileinfo模块安装使用详解
May 09 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
May 25 PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
Jun 03 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使用PHPMailer发送邮件的简单使用方法
2013/11/12 PHP
PHP面向对象精要总结
2014/11/07 PHP
php冒泡排序与快速排序实例详解
2015/12/07 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
基于JavaScript 类的使用详解
2013/05/07 Javascript
Javascript实现动态菜单添加的实例代码
2013/07/05 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
2015/12/07 Javascript
js获取新浪天气接口的实现代码
2016/06/06 Javascript
AngularJS使用ng-options指令实现下拉框
2016/08/23 Javascript
原生JS改变透明度实现轮播效果
2017/03/24 Javascript
jquery Ajax实现Select动态添加数据
2017/06/08 jQuery
JavaScript利用fetch实现异步请求的方法实例
2017/07/26 Javascript
js使用highlight.js高亮你的代码
2017/08/18 Javascript
webpack下实现动态引入文件方法
2018/02/22 Javascript
js实现图片3D轮播效果
2019/09/21 Javascript
Js和VUE实现跑马灯效果
2020/05/25 Javascript
原生js+canvas实现贪吃蛇效果
2020/08/02 Javascript
使用Vant完成Dialog弹框案例
2020/11/11 Javascript
python中利用Future对象异步返回结果示例代码
2017/09/07 Python
Python2与python3中 for 循环语句基础与实例分析
2017/11/20 Python
对Python 语音识别框架详解
2018/12/24 Python
Python+Selenium使用Page Object实现页面自动化测试
2019/07/14 Python
python 进程 进程池 进程间通信实现解析
2019/08/23 Python
python入门之基础语法学习笔记
2020/02/08 Python
Python 使用生成器代替线程的方法
2020/08/04 Python
HTML5的download属性详细介绍和使用实例
2014/04/23 HTML / CSS
Born鞋子官网:Born Shoes
2017/04/06 全球购物
巴基斯坦购物网站:Goto
2019/03/11 全球购物
意大利文具和办公产品在线商店:Y-Office
2020/02/27 全球购物
心理健康活动总结
2014/04/30 职场文书
教师聘用意向书
2015/05/11 职场文书
谢师宴家长答谢词
2015/09/30 职场文书
MySQL中的布尔值,怎么存储false或true
2021/06/04 MySQL
python基础入门之字典和集合
2021/06/13 Python
MySQL实战记录之如何快速定位慢SQL
2022/03/23 MySQL