利用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的ob_start();控制您的浏览器cache!
Feb 14 PHP
php自动适应范围的分页代码
Aug 05 PHP
php fckeditor 调用的函数
Jun 21 PHP
web server使用php生成web页面的三种方法总结
Oct 28 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
Apr 07 PHP
php+ajax无刷新上传图片实例代码
Nov 17 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
Mar 21 PHP
PHP模板引擎Smarty内建函数foreach,foreachelse用法分析
Apr 11 PHP
PHP编程实现计算抽奖概率算法完整实例
Aug 09 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
Apr 08 PHP
PHP手机短信验证码实现流程详解
May 17 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 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 异步执行方法,模拟多线程的应用分析
2013/06/03 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
jQuery 源代码显示控件 (Ajax加载方式).
2009/05/18 Javascript
基于jquery的一个浮动框(扩展性比较好 )
2010/08/27 Javascript
ExtJS4给Combobox设置列表中的默认值示例
2014/05/02 Javascript
yepnope.js使用详解及示例分享
2014/06/23 Javascript
JavaScript数值转换的三种方式总结
2014/07/31 Javascript
BOM系列第二篇之定时器requestAnimationFrame
2016/08/17 Javascript
详解vue-validator(vue验证器)
2017/01/16 Javascript
thinkphp标签实现bootsrtap轮播carousel实例代码
2017/02/19 Javascript
利用node.js搭建简单web服务器的方法教程
2017/02/20 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
2017/03/15 Javascript
vue构建单页面应用实战
2017/04/10 Javascript
vue项目打包后打开页面空白解决办法
2018/06/29 Javascript
opencv 识别微信登录验证滑动块位置
2018/08/07 Javascript
详解webpack-dev-middleware 源码解读
2020/03/23 Javascript
vue props default Array或是Object的正确写法说明
2020/07/30 Javascript
Python 功能和特点(新手必学)
2015/12/30 Python
使用Python来编写HTTP服务器的超级指南
2016/02/18 Python
Python内置数据结构与操作符的练习题集锦
2016/07/01 Python
python实现求最长回文子串长度
2018/01/22 Python
处理python中多线程与多进程中的数据共享问题
2019/07/28 Python
python打造爬虫代理池过程解析
2019/08/15 Python
利用python实现周期财务统计可视化
2019/08/25 Python
Python SQLAlchemy入门教程(基本用法)
2019/11/11 Python
python实现拉普拉斯特征图降维示例
2019/11/25 Python
Keras load_model 导入错误的解决方式
2020/06/09 Python
css3 响应式媒体查询的示例代码
2019/09/25 HTML / CSS
伦敦最著名的老字号百货公司:Selfridges(塞尔福里奇百货)
2016/07/25 全球购物
澳大利亚最好的在线时尚精品店:Princess Polly
2018/01/03 全球购物
语文教育专业应届生求职信
2013/11/23 职场文书
档案检查欢迎词
2014/01/13 职场文书
防灾减灾日活动总结
2014/08/26 职场文书
村党支部书记四风问题个人对照检查材料思想汇报
2014/10/06 职场文书
2015年化验员工作总结
2015/04/10 职场文书
2015年党务工作者个人工作总结
2015/10/22 职场文书