如何强制PHP / Apache再使用一年?

Y U*_*ORK 5 php apache

因此,我由另一个员工交给了一个旧项目。这是可怕的代码,差点让我辞职。两次。因为我没有那么多时间(我花了2周的时间完成这项任务),所以我无法重写整个过程。我按照要求进行了修改,目前正在测试中。问题是,代码应在其他年份更改其行为。这个问题的问题是,没有设置当前年份的中心位置,它遍历了所有代码date("Y"),这迫使我更改大约200个文件。

因此,最简单的解决方案是在一开始就告诉PHP:“嘿,这是20xx年”。我尝试过date_default_timezone_set(),但这完全没有帮助。所以我正在寻找的是:

  • 一个将当前年份更改为设置值的PHP命令(如Set_Date("Y", 2016);
  • 更改当前时间的Apache-Server命令(如setdate -Y 2016

有什么办法或至少可以通过一种变通办法使脚本认为这是另一年?

Hal*_*nis 3

您可以使用runkit_function_redefine()
重新定义函数 ,但您需要设置runkit PECL 扩展

注意:我没有测试过!

<?php 
print date("Y");

$date = 'print "Hello, it is a new definition of date function <" . $Y . ">"; return 2014; ';
runkit_function_redefine('date', '$Y', $date);

date("Y");
Run Code Online (Sandbox Code Playgroud)