利用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制作图型计数器的例子
Oct 09 PHP
计算2000年01月01日起到指定日的天数
Oct 09 PHP
MYSQL数据库初学者使用指南
Nov 16 PHP
初学CAKEPHP 基础教程
Nov 02 PHP
PHP下打开URL地址的几种方法小结
May 16 PHP
深入解析PHP中的(伪)多线程与多进程
Jul 01 PHP
php字符串操作针对负值的判断分析
Jul 28 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
Nov 02 PHP
PHP基于redis计数器类定义与用法示例
Feb 08 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
May 31 PHP
PHP+mysql实现的三级联动菜单功能示例
Feb 15 PHP
PHP中quotemeta()函数的用法讲解
Apr 04 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的图形函数中显示汉字
2006/10/09 PHP
php的dl函数用法实例
2014/11/06 PHP
PHPExcel内存泄漏问题解决方法
2015/01/23 PHP
php 访问oracle 存储过程实例详解
2017/01/08 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
Js数组的操作push,pop,shift,unshift等方法详细介绍
2012/12/28 Javascript
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
2014/11/19 Javascript
老生常谈js-react组件生命周期
2017/05/02 Javascript
Bootstrap Tree View简单而优雅的树结构组件实例解析
2017/06/15 Javascript
详解nodejs通过代理(proxy)发送http请求(request)
2017/09/22 NodeJs
详解使用Next.js构建服务端渲染应用
2018/07/10 Javascript
js隐式转换的知识实例讲解
2018/09/28 Javascript
Vue实例的对象参数options的几个常用选项详解
2019/11/08 Javascript
JavaScript中的函数申明、函数表达式、箭头函数
2019/12/06 Javascript
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
2020/06/07 Javascript
jenkins自动构建发布vue项目的方法步骤
2021/01/04 Vue.js
Python内置的字符串处理函数详细整理(覆盖日常所用)
2014/08/19 Python
用Python的Tornado框架结合memcached页面改善博客性能
2015/04/24 Python
用Eclipse写python程序
2018/02/10 Python
python编写弹球游戏的实现代码
2018/03/12 Python
ZABBIX3.2使用python脚本实现监控报表的方法
2019/07/02 Python
Python read函数按字节(字符)读取文件的实现
2019/07/03 Python
python实现车牌识别的示例代码
2019/08/05 Python
Python 中的 global 标识对变量作用域的影响
2019/08/12 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
2020/04/09 Python
墨西哥网上购物:Linio墨西哥
2016/10/20 全球购物
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
测试时代收集的软件测试面试题
2013/09/25 面试题
计算机应届毕业生自荐信范文
2014/02/23 职场文书
班班通校本培训方案
2014/03/12 职场文书
“向国旗敬礼”活动策划方案(4篇)
2014/09/27 职场文书
介绍信的格式
2015/01/30 职场文书
地震慰问信
2015/02/14 职场文书
建筑工地资料员岗位职责
2015/04/13 职场文书
互联网创业商业模式以及赚钱法则有哪些?
2019/10/12 职场文书
如何判断pytorch是否支持GPU加速
2021/06/01 Python