利用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 相关文章推荐
基于mysql的bbs设计(三)
Oct 09 PHP
如何利用php array_multisort函数 对数据库结果进行复杂排序
Jun 08 PHP
PHP实现把数字ID转字母ID
Aug 12 PHP
php制作unicode解码工具(unicode编码转换器)代码分享
Dec 24 PHP
php实现的返回数据格式化类实例
Sep 22 PHP
PHP简单创建压缩图的方法
Aug 24 PHP
PHP读取zip文件的方法示例
Nov 17 PHP
PHP+Redis 消息队列 实现高并发下注册人数统计的实例
Jan 29 PHP
laravel获取不到session的三种解决办法【推荐】
Sep 16 PHP
PHP合并两个或多个数组的方法
Jan 20 PHP
PHP实现PDO操作mysql存储过程示例
Feb 13 PHP
vmware linux系统安装最新的php7图解
Apr 14 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格式化电话号码的方法
2015/04/24 PHP
PHP数组和explode函数示例总结
2015/05/08 PHP
php实现分页显示
2015/11/03 PHP
php二维码生成以及下载实现
2017/09/28 PHP
laravel通用化的CURD的实现
2019/12/13 PHP
cookie 最近浏览记录(中文escape转码)具体实现
2013/06/08 Javascript
验证手机号码的JS方法分享
2013/09/10 Javascript
showModelDialog弹出文件下载窗口的使用示例
2013/11/19 Javascript
js使用数组判断提交数据是否存在相同数据
2013/11/27 Javascript
jquery实现网页查找功能示例分享
2014/02/12 Javascript
如何让一个json文件显示在表格里【实现代码】
2016/05/09 Javascript
微信小程序 form组件详解及简单实例
2017/01/10 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
2017/03/09 Javascript
JS组件系列之JS组件封装过程详解
2017/04/28 Javascript
原生JS实现隐藏显示图片 JS实现点击切换图片效果
2021/01/27 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
js正则相关知识点专题
2018/05/10 Javascript
Vue.js自定义指令学习使用详解
2019/10/19 Javascript
vue实现移动端返回顶部
2020/10/12 Javascript
Array.filter中如何正确使用Async
2020/11/04 Javascript
vue+elementui通用弹窗的实现(新增+编辑)
2021/01/07 Vue.js
[30:37]【全国守擂赛】第三周擂主赛 Dark Knight vs. Leopard Gaming
2020/05/04 DOTA
Python实现基于HTTP文件传输实例
2014/11/08 Python
Python连接数据库学习之DB-API详解
2017/02/07 Python
机器学习的框架偏向于Python的13个原因
2017/12/07 Python
终端命令查看TensorFlow版本号及路径的方法
2018/06/13 Python
纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
2012/12/28 HTML / CSS
实例讲解CSS3中Transform的perspective属性的用法
2016/04/22 HTML / CSS
萨克斯第五大道的折扣店:Saks Fifth Avenue OFF 5TH
2016/08/25 全球购物
澳大利高级泳装品牌:Bondi Born
2018/05/23 全球购物
英国电子产品购物网站:TobyDeals
2018/07/30 全球购物
iKRIX意大利网上商店:男女豪华服装和配件
2019/10/09 全球购物
质检部岗位职责
2013/11/11 职场文书
办公室前台的岗位职责
2013/12/20 职场文书
纺织工程专业推荐信
2014/09/08 职场文书
教师学习八项规定六项禁令思想汇报
2014/09/27 职场文书