利用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 相关文章推荐
AJAX for PHP简单表数据查询实例
Jan 02 PHP
PHP 自定义错误处理函数的使用详解
May 10 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
Dec 18 PHP
php用户注册时常用的检验函数实例总结
Dec 22 PHP
php获取本周开始日期和结束日期的方法
Mar 09 PHP
php实现json编码的方法
Jul 30 PHP
PHP的运行机制与原理(底层)
Nov 16 PHP
学习thinkphp5.0验证类使用方法
Nov 16 PHP
PHP实现微信商户支付企业付款到零钱功能
Sep 30 PHP
PHP addslashes()函数讲解
Feb 03 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
Jul 01 PHP
PHP rsa加密解密算法原理解析
Dec 09 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 google或baidu分页代码
2009/11/26 PHP
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
2013/06/01 PHP
PHP实现的简单三角形、矩形周长面积计算器分享
2014/11/18 PHP
Symfony的安装和配置方法
2016/03/17 PHP
mac下多个php版本快速切换的方法
2016/10/09 PHP
php实现的mysqldb读写分离操作类示例
2017/02/07 PHP
PHP手机短信验证码实现流程详解
2018/05/17 PHP
php中上传文件的的解决方案
2018/09/25 PHP
jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
2010/04/01 Javascript
判断复选框是否被选中的两种方法
2014/06/04 Javascript
AngularJS入门教程之Hello World!
2014/12/06 Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
2015/09/09 Javascript
Bootstrap与KnockoutJs相结合实现分页效果实例详解
2016/05/03 Javascript
使用jquery给新生的th绑定hover事件的实例
2017/02/10 Javascript
利用 spin.js 生成等待效果(js 等待效果)
2017/06/25 Javascript
JavaScript页面倒计时功能完整示例
2019/05/15 Javascript
vue项目中监听手机物理返回键的实现
2020/01/18 Javascript
编写Python脚本批量下载DesktopNexus壁纸的教程
2015/05/06 Python
深入浅析python继承问题
2016/05/29 Python
Python入门教程之运算符与控制流
2016/08/17 Python
基于python的字节编译详解
2017/09/20 Python
浅谈python标准库--functools.partial
2019/03/13 Python
python函数的作用域及关键字详解
2019/08/20 Python
python2和python3实现在图片上加汉字的方法
2019/08/22 Python
通过实例解析python and和or使用方法
2020/11/14 Python
浅谈HTML5 服务器推送事件(Server-sent Events)
2017/08/01 HTML / CSS
Ben Sherman官方网站:英国男装品牌
2019/10/22 全球购物
SIMON MILLER官网:洛杉矶的生活方式品牌
2020/10/19 全球购物
会议活动邀请函
2014/01/27 职场文书
酒店餐厅2014重阳节活动策划方案
2014/09/16 职场文书
实施意见格式范本
2015/06/05 职场文书
2015年秋季运动会广播稿
2015/08/19 职场文书
《红领巾真好》教学反思
2016/02/16 职场文书
小学一年级语文教学反思
2016/03/03 职场文书
市直属机关2016年主题党日活动总结
2016/04/05 职场文书
Mysql 用户权限管理实现
2021/05/25 MySQL