利用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 相关文章推荐
JAVA/JSP学习系列之二
Oct 09 PHP
Apache+php+mysql在windows下的安装与配置图解(最新版)
Nov 30 PHP
php addslashes 函数详细分析说明
Jun 23 PHP
PHP下通过系统信号量加锁方式获取递增序列ID
Sep 25 PHP
PHPCMS的使用小结
Sep 20 PHP
PHP运行时强制显示出错信息的代码
Apr 20 PHP
用PHP的超级变量$_POST获取HTML表单(HTML Form) 数据
May 07 PHP
PHP+jQuery实现自动补全功能源码
May 15 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
Apr 08 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
Oct 09 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
PHP保存Base64图片base64_decode的问题整理
Nov 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
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
php生成SessionID和图片校验码的思路和实现代码
2009/03/10 PHP
PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例
2020/08/17 PHP
PHP对象克隆clone用法示例
2016/09/28 PHP
php7下的filesize函数
2019/09/30 PHP
PHP 对象继承原理与简单用法示例
2020/04/21 PHP
json简单介绍
2008/06/10 Javascript
Javascript hasOwnProperty 方法 &amp; in 关键字
2008/11/26 Javascript
JS图片切换的具体方法(带缩略图版)
2013/11/12 Javascript
让jQuery与其他JavaScript库并存避免冲突的方法
2013/12/23 Javascript
jQuery实现设置、移除文本框默认值功能
2015/01/13 Javascript
JS 对象属性相关(检查属性、枚举属性等)
2015/04/05 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
2015/11/25 Javascript
jQuery CSS3相结合实现时钟插件
2016/01/08 Javascript
jQuery对象的链式操作用法分析
2016/05/10 Javascript
详解JS中的快速排序与冒泡
2017/01/10 Javascript
细说webpack源码之compile流程-rules参数处理技巧(1)
2017/12/26 Javascript
vue 使用ref 让父组件调用子组件的方法
2018/02/08 Javascript
vue中echarts3.0自适应的方法
2018/02/26 Javascript
vue router 配置路由的方法
2018/07/26 Javascript
JS/HTML5游戏常用算法之路径搜索算法 A*寻路算法完整实例
2018/12/14 Javascript
微信小程序导航栏滑动定位功能示例(实现CSS3的positionsticky效果)
2019/01/24 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
重命名批处理python脚本
2013/04/05 Python
使用go和python递归删除.ds store文件的方法
2014/01/22 Python
Python实现从url中提取域名的几种方法
2014/09/26 Python
Python守护进程用法实例分析
2015/06/04 Python
Python3 socket同步通信简单示例
2017/06/07 Python
go和python变量赋值遇到的一个问题
2017/08/31 Python
Python设计模式之备忘录模式原理与用法详解
2019/01/15 Python
Django restframework 源码分析之认证详解
2019/02/22 Python
HTML5 DeviceOrientation实现手机网站摇一摇功能代码实例
2015/04/24 HTML / CSS
南非最大的花卉和送礼服务:NetFlorist
2017/09/13 全球购物
.NET初级开发工程师面试题
2014/04/18 面试题
军训生自我鉴定范文
2013/12/27 职场文书
物业保洁员管理制度
2015/08/05 职场文书