利用PHP扩展vld查看PHP opcode操作步骤

2015-01-24信息快讯网

首先下载最新版vld扩展接下来编译安装vld扩展最后将生成的vld.so复制到extension_dir目录下然后修改php.ini文件接下来创建test.php文件,感兴趣的你可以参考下本文

首先下载最新版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 
yii框架builder、update、delete使用方法
PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
php var_export与var_dump 输出的不同
浅析PHP原理之变量(Variables inside PHP)
浅析PHP原理之变量分离/引用(Variables Separation)
php中如何使对象可以像数组一样进行foreach循环
php接口与接口引用的深入解析
怎样使用php与jquery设置和读取cookies
利用php+mcDropdown实现文件路径可在下拉框选择
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
PHP中fwrite与file_put_contents性能测试代码
深入解析Session是否必须依赖Cookie
ie与session丢失(新窗口cookie丢失)实测及解决方案
php5.5新数组函数array_column使用
php打开文件fopen函数的使用说明
深入解析fsockopen与pfsockopen的区别
解析php php_openssl.dll的作用
关于PHP结束标签的使用细节探讨及联想
PHP对MongoDB[NoSQL]数据库的操作
phpExcel导出大量数据出现内存溢出错误的解决方法
Apache中php.ini的设置方法
PHP中如何定义和使用常量
使用php判断浏览器的类型和语言的函数代码
CI框架源码阅读,系统常量文件constants.php的配置
PHP5.4中json_encode中文转码的变化小结
PHP中CURL方法curl_setopt()函数的参数分享
PHP基础教程(php入门基础教程)一些code代码
将博客园(cnblogs.com)数据导入到wordpress的代码
Could not load type System.ServiceModel.Activation.HttpModule解决办法
PHP fopen 读取带中文URL地址的一点见解
比较discuz和ecshop的截取字符串函数php版
openflashchart 2.0 简单案例php版
simplehtmldom Doc api帮助文档
php中http_build_query 的一个问题
ecshop 批量上传(加入自定义属性)
php urlencode()与urldecode()函数字符编码原理详解
PHP 小心urldecode引发的SQL注入漏洞
©2014-2024 dbsqp.com