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

 更新时间:2013年03月04日 16:17:33   作者:  
首先下载最新版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

相关文章

  • PHP之sprintf函数用法详解

    PHP之sprintf函数用法详解

    这篇文章主要介绍了PHP中sprintf函数用法,以实例形式详细分析了sprintf函数格式化输出的常见用法,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-11-11
  • PHP定时任务获取微信access_token的方法

    PHP定时任务获取微信access_token的方法

    这篇文章主要介绍了PHP定时任务获取微信access_token的方法,涉及php基于curl动态获取access_token及CentOS下crontab设置计划任务的相关操作技巧,需要的朋友可以参考下
    2016-10-10
  • php curl post 时出现的问题解决

    php curl post 时出现的问题解决

    这篇文章主要介绍了php curl post 时出现问题的解决方法,需要的朋友可以参考下
    2014-01-01
  • php UNIX时间戳用法详解

    php UNIX时间戳用法详解

    这篇文章主要介绍了php UNIX时间戳用法,结合实例形式分析了php Unix时间戳相关函数与使用技巧,需要的朋友可以参考下
    2017-02-02
  • php跨服务器访问方法小结

    php跨服务器访问方法小结

    这篇文章主要介绍了php跨服务器访问方法,实例总结了常见的php跨服务器访问技巧,非常简单实用,需要的朋友可以参考下
    2015-05-05
  • fetchAll()与mysql_fetch_array()的区别详解

    fetchAll()与mysql_fetch_array()的区别详解

    本篇文章是对fetchAll()与mysql_fetch_array()的区别进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php保存信息到当前Session的方法

    php保存信息到当前Session的方法

    这篇文章主要介绍了php保存信息到当前Session的方法,实例分析了php中session的使用技巧,需要的朋友可以参考下
    2015-03-03
  • PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析

    PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析

    这篇文章主要介绍了PHP编程文件处理类SplFileObject和SplFileInfo用法,结合实例形式分析了文件处理类SplFileObject和SplFileInfo的功能、定义、使用方法与相关注意事项,需要的朋友可以参考下
    2017-07-07
  • PHP Parser 扫描应用打印输出结构语句实例

    PHP Parser 扫描应用打印输出结构语句实例

    这篇文章主要为大家介绍了PHP Parser 扫描应用打印输出结构语句实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • 简单谈谈php中的unicode和utf8编码

    简单谈谈php中的unicode和utf8编码

    本文给大家深入讨论了unicode和utf8这两种编码的关系,理解好了会发现网上一些旧的东西,是严重多余兼过期的,因为从utf-8流行开始到现在,早已经由原来六字节可变编码到实际完全居于unicode(UCS-2)的稳定阶段。
    2015-06-06

最新评论