Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在解析PHP文件之前对其进行操作_Php_Php Extension - Fatal编程技术网

在解析PHP文件之前对其进行操作

在解析PHP文件之前对其进行操作,php,php-extension,Php,Php Extension,我已经设法为php编写了一个小型的可编译扩展,它在每个ZEND_RINIT上打印“test” 我用一个加载多个其他文件的php文件对其进行了测试,该文件再次加载其他文件[…]。问题是,扩展只打印“test”一次,所以我假设它不会在每次加载新文件时启动,我如何让扩展这么做 此外,该事件在加载文件之前触发,这是我想要的,但因此zend_get_executed_filename()为空,我无法获取文件内容 我的最终目标是在执行脚本之前验证每个文件。我计划通过验证附加到文件的文件签名来实现这一点 伪代

我已经设法为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的所有文件加载函数