利用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用SAX解析XML的实现代码与问题分析
Aug 22 PHP
关于js与php互相传值的介绍
Jun 25 PHP
preg_match_all使用心得分享
Jan 31 PHP
php中文繁体和简体相互转换的方法
Mar 21 PHP
php中file_exists函数使用详解
May 08 PHP
PHP 中提示undefined index如何解决(多种方法)
Mar 16 PHP
PHP编程实现csv文件导入mysql数据库的方法
Apr 29 PHP
php实现数组纵向转横向并过滤重复值的方法分析
May 29 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
Nov 06 PHP
PHP实现打包zip并下载功能
Jun 12 PHP
php中html_entity_decode实现HTML实体转义
Jun 13 PHP
laravel 获取某个查询的查询SQL语句方法
Oct 12 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
centos 5.6 升级php到5.3的方法
2011/05/14 PHP
深入解析PHP中逗号与点号的区别
2013/08/05 PHP
Ruffy javascript 学习笔记
2009/11/30 Javascript
JavaScript中的闭包原理分析
2010/03/08 Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
2013/12/14 Javascript
分享一则JavaScript滚动条插件源码
2015/03/03 Javascript
JavaScript实现时间倒计时跳转(推荐)
2016/06/28 Javascript
Js得到radiobuttonlist选中值的两种方法(推荐)
2016/08/25 Javascript
轻松掌握JavaScript单例模式
2016/08/25 Javascript
bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路
2016/09/28 Javascript
Bootstrap作品展示站点实战项目2
2016/10/14 Javascript
AngularJS 实现购物车全选反选功能
2017/10/24 Javascript
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
基于JS实现带动画效果的流程进度条
2018/06/01 Javascript
vue使用exif获取图片旋转,压缩的示例代码
2020/12/11 Vue.js
vue登录页实现使用cookie记住7天密码功能的方法
2021/02/18 Vue.js
[00:18]天涯墨客三技能展示
2018/08/25 DOTA
python一键升级所有pip package的方法
2017/01/16 Python
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
深入理解Django自定义信号(signals)
2018/10/15 Python
django rest framework 自定义返回方式
2020/07/12 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
python 根据列表批量下载网易云音乐的免费音乐
2020/12/03 Python
纯CSS实现设置半个字符的样式
2014/07/03 HTML / CSS
使用CSS3编写类似iOS中的复选框及带开关的按钮
2016/04/11 HTML / CSS
暇步士官网:Hush Puppies
2016/09/22 全球购物
Origins悦木之源香港官网:雅诗兰黛集团高端植物护肤品牌
2018/03/21 全球购物
主键(Primary Key)约束和唯一性(UNIQUE)约束的区别
2013/05/29 面试题
外包公司软件测试工程师
2014/11/01 面试题
幼儿教师工作感言
2014/02/14 职场文书
土建专业大学生自荐信范文
2014/04/09 职场文书
2014年服装销售工作总结
2014/11/27 职场文书
毕业论文指导教师评语
2014/12/30 职场文书
python函数的两种嵌套方法使用
2022/04/02 Python
Win11安全功能升级:内置防网络钓鱼功能
2022/04/08 数码科技
使用scrapy实现增量式爬取方式
2022/06/21 Python