利用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中强制下载文件的代码(解决了IE下中文文件名乱码问题)
May 09 PHP
php正则表达匹配中文问题分析小结
Mar 25 PHP
基于php伪静态的实现详细介绍
Apr 28 PHP
php中sql注入漏洞示例 sql注入漏洞修复
Jan 24 PHP
php中的字符编码转换函数用法示例
Oct 20 PHP
PHP判断数据库中的记录是否存在的方法
Nov 14 PHP
微信API接口大全
Apr 15 PHP
PHP扩展程序实现守护进程
Apr 16 PHP
Yii使用Captcha验证码的方法
Dec 28 PHP
Yii框架连接mongodb数据库的代码
Jul 27 PHP
PHP5.6新增加的可变函数参数用法分析
Aug 25 PHP
解决tp5在nginx下修改配置访问的问题
Oct 16 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/02 无线电
PHP获取当前页面完整URL的实现代码
2013/06/10 PHP
PHP中将ip地址转成十进制数的两种实用方法
2013/08/15 PHP
thinkphp普通查询与表达式查询实例分析
2014/11/24 PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
2016/05/06 PHP
遍历echsop的region表形成缓存的程序实例代码
2016/11/01 PHP
Laravel配合jwt使用的方法实例
2020/10/25 PHP
用javascript实现的支持lrc歌词的播放器
2007/05/17 Javascript
关于可运行代码无法正常执行的使用说明
2010/05/13 Javascript
DB.ASP 用Javascript写ASP很灵活很好用很easy
2011/07/31 Javascript
IE下使用cloneNode注意事项分享
2012/11/22 Javascript
javascript真的不难-回顾一下基础知识
2013/01/15 Javascript
js实现广告漂浮效果的小例子
2013/07/02 Javascript
ajax请求get与post的区别总结
2013/11/04 Javascript
JS读取XML文件示例代码
2013/11/15 Javascript
javascript去除字符串左右两端的空格
2015/02/05 Javascript
js实现类似jquery里animate动画效果的方法
2015/04/10 Javascript
js实现表格筛选功能
2017/01/18 Javascript
jQuery代码实现实时获取时间
2017/01/29 Javascript
underscore之Chaining_动力节点Java学院整理
2017/07/10 Javascript
JS实现的input选择图片本地预览功能示例
2018/08/29 Javascript
微信小程序实现星级评价效果
2018/12/28 Javascript
js字符串处理之绝妙的代码
2019/04/05 Javascript
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
python的变量与赋值详细分析
2017/11/08 Python
python3.4.3下逐行读入txt文本并去重的方法
2018/04/29 Python
python3监控CentOS磁盘空间脚本
2018/06/21 Python
python实现屏保计时器的示例代码
2018/08/08 Python
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
2018/11/01 Python
Python中修改字符串的四种方法
2018/11/02 Python
Python(PyS60)实现简单语音整点报时
2019/11/18 Python
canvas实现二维码和图片合成的示例代码
2018/08/01 HTML / CSS
What is view? why do we have view?
2012/06/22 面试题
生物化学研究助理员求职信
2013/10/09 职场文书
2017元旦晚会开幕词
2016/03/03 职场文书
详解Java实现数据结构之并查集
2021/06/23 Java/Android