2

我想在执行之前挂钩/或替换标准核心功能,例如,我将阻止这两个includerequire访问任何脚本。有什么方法可以在没有任何额外的 .dll 的情况下实现它?或者另一种情况is_array($myarr);是我会挂钩array($myarr) === $myarr;看起来更快)以避免创建额外的类和函数。

Ps 和另一个问题:如何在一段时间后阻止所有 php 执行?我有带有 php 部分的 html 模板<?=$myvar?>我想在我的脚本结束工作时完全防止短的 sintax 和执行,我必须尝试什么?

4

2 回答 2

2

关于标准功能的挂钩:没有外部模块就无法做到这一点。APD PECL 模块 将完成这项工作。

rename_function('require', 'internal_require'); // saving reference to original function
override_function('require', '$filename', 
                  'print "require called"; internal_require($filename);');

第二个问题不是很清楚。你想挂接标准is_array函数、array()词法构造还是(array)类型转换?

关于停止 php 解释:看看__halt_compiler函数。但请记住,后续的 php 块将只是嵌入到 HTML 中(因此每个人都可以看到)。

于 2012-07-29T14:57:18.047 回答
0

如果要禁用功能,可以使用安全模式,但不推荐使用,不推荐使用。正如 madfriend 所说, __halt_compiler 只是将它下面的所有内容作为文本发送。请记住,它只能从最外层范围调用 - 即不能在花括号内(如果、循环、函数等)

于 2012-07-29T16:31:57.923 回答