在解析之前操作 PHP- 文件

Manipulate PHP-Files before they are parsed

我已经设法为 php 编写了一个可编译的小扩展,它在每个 ZEND_RINIT 上打印 "test"。

我用加载多个其他文件的 php 文件对其进行了测试,该文件再次加载其他文件 [...]。问题是,扩展只打印 "test" 一次,所以我假设它不会在每次加载新文件时触发,我怎样才能让我的扩展这样做?

在文件加载之前事件也被触发,这就是我想要的,但是因此 zend_get_executed_filename() 是空的,我无法获取文件内容...

我的最终目标是在执行脚本之前验证每个文件。我计划通过验证附加到文件的文件签名来这样做。

伪代码验证:

decrypt(signature, rsa.pub) = sha(filecontent)

伪代码签名:

signature = encrypt(sha(filecontent), rsa.priv)
file += signature

或者是否有更好的方法在执行脚本之前验证文件(我希望对它们进行签名)?

提前致谢!

ZEND_RINIT 在请求启动时调用,即当您执行 php 文件时。在您的 PHP 文件执行期间,它永远不会被再次调用。仅在下次启动时。 您必须找到一种方法来连接 PHP.

的所有文件加载函数