您的旧项目使用了现已弃用(自 5.3 起)并删除(自 5.4 起)的功能,称为“注册全局变量”。请阅读为什么删除此功能:http://php.net/manual/en/security.globals.php
简而言之,不,您不想更改 php.ini 以便您的旧应用程序可以工作。相反,您更有可能希望修复旧应用程序以在不注册全局变量的情况下工作。
也就是说,如果这不是面向公众的应用程序或者安全性不是问题,那么您可以通过一种方法配置 php.ini,甚至对于 PHP 5.4 也可以让您的应用程序正常工作。
警告:这涉及更改 php.ini 文件,以便模拟寄存器全局变量的效果。这意味着所有PHP 脚本都将受到寄存器全局变量的影响,而 不仅仅是您想要的脚本。
如前所述,extract($_REQUEST);将基本上完成寄存器全局变量过去的用途。现在,使用该auto_prepend_file指令,您可以在每个脚本之前运行这行代码。
也就是说,将此文件保存在某处(最好在您的 PHP 包含路径中),然后将其命名为register_globals.php.
<?php
extract($_POST);
Run Code Online (Sandbox Code Playgroud)
现在php.ini,在 中添加此行(该路径可能相对于您的 PHP 包含路径)。
auto_prepend_file = "register_globals.php" ; emulates register_globals
Run Code Online (Sandbox Code Playgroud)
此更改的效果是require("register_globals.php");在任何脚本运行之前发生。