php - 在 PHP 运行时重命名函数

标签 php debugging pecl php-extension

在 PHP 5.3 中有一种重命名函数或“ Hook ”函数的方法。

“APD”中有一个 rename_function(),它自 ~2004 年以来就被破坏了。如果您尝试在 PHP 5.3 上构建它,您将收到此错误:

“struct _zend_compiler_globals”没有名为“extended_info”的成员

这是一个非常容易修复的错误,只需更改这一行:

GC(extended_info) = 1;

CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;

我修改了我的 php.ini,APD 正常显示在我的 phpinfo() 中。但是,当我调用 rename_function() 时,PHP 页面不会加载,并且我在 /var/log/apache2/error.log 中遇到段错误。

有没有办法修复 APD 以与现代版本的 PHP 一起工作?还是有另一种重命名函数的方法? 到底为什么重要的功能不在 php 中!??!?!(一定要喜欢 python :)

最佳答案

最新的 runkit 扩展可以在 http://github.com/zenovich/runkit 上找到 它支持目前发布的所有当代 PHP 版本(从 4.4 到 5.4+)。此 runkit 是官方的并受支持。

真诚的, 德米特里·泽诺维奇

关于php - 在 PHP 运行时重命名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2846353/

相关文章:

windows - VS 2012 中 'Debugger Immediate Window' 中的 KdPrintEx 不打印任何消息

php - 无法在 centos 5.8 中安装 bcompiler,出现无法解压/tmp/bcompiler 的错误

php - 空的或太短的 HTTP 消息

php - 无法在带有 M1 的 macOS 上安装十进制 PHP 扩展 – "Could not find libmpdec"

php - JavaScript 问题

PHPUnit 不生成 xml 日志

php - 开发的android应用无法连接到phpmyadmin

windows - 线程命令在 WInDbg 中不起作用

c++ - 在没有 ASLR 的情况下寻找(内存,GC 相关的)heisenbug 消失

php - 使用不同的值更新多行 SQL