PHP 7.2+ Mcrypt 函数抛出“弃用错误”,即使安装了 Mcrypt 扩展模块

PHP 7.2+ Mcrypt functions throw "Deprecated Error" even if Mcrypt extension module is installed

提问人:Paolo 提问时间:9/13/2019 更新时间:9/13/2019 访问量:1470

问:

自 PHP 7.1.0 起,Mcrypt 函数已被弃用,自 PHP 7.2.0 起被删除

我需要将一些依赖于 Mcrypt 的代码迁移到 PHP 7.3.9,所以我通过 PECL 安装了 Mcrypt 扩展

问题在于,如果设置了错误报告位(通过php.ini配置文件或在运行时使用函数),Mcrypt函数会停止执行,并mcrypt_...函数已弃用错误。E_DEPRECATEDerror_reporting()

有没有办法在加载 Mcrypt 扩展时保持设置但允许执行 Mcrypt 函数?E_DEPRECATED

已弃用 MCRYPT PECL PHP-7.2 错误报告

评论

0赞 exussum 9/13/2019
这是您的错误处理程序。这不是默认行为。找到您的错误处理程序,并允许已弃用的情况(例如此情况)出现异常。通过您的错误处理程序,我的意思是您的应用程序覆盖了默认错误处理程序
0赞 neubert 9/13/2019
如果您安装了 github.com/phpseclib/mcrypt_compat,则不会遇到此类问题。在这一点上,如果OpenSSL不可用,mcrypt将使用OpenSSL或纯PHP实现进行模拟
0赞 Shaun 6/30/2021
您是否找到了允许执行 mcrypt 函数 Paolo 的方法?
1赞 Paolo 7/1/2021
@Shaun唯一的方法是不设置E_DEPRECATED位

答: 暂无答案