运行Mutillidae出现PHP花括号访问偏移语法报错该如何解决
问题原因
你遇到的报错是由于PHP版本和Mutillidae依赖组件不兼容导致:PHP 7.4版本已弃用、8.0及以上版本完全移除了使用{}花括号访问数组、字符串偏移量的语法,而你当前使用的Mutillidae版本依赖的旧版apache-log4php组件仍在使用该废弃语法,因此运行时抛出致命错误。
解决方法
方法1:降级XAMPP PHP版本(新手优先推荐)
旧版Mutillidae完美适配PHP 7.3及更低版本,你可以直接卸载当前高版本XAMPP,下载安装搭载PHP 7.3或更低版本的XAMPP安装包,重新部署Mutillidae即可正常运行,无需修改任何代码。
方法2:手动修改代码适配高版本PHP
如果不想更换XAMPP版本,可按以下步骤修复报错:
- 按照报错路径打开文件
C:\xampp\htdocs\mutillidae\owasp-esapi-php\lib\apache-log4php\trunk\src\main\php\helpers\LoggerPatternParser.php - 定位到第114行,将代码中用花括号访问字符串/数组偏移的写法,替换为方括号写法
- 原写法示例:
$pattern{$pos} - 修改后写法:
$pattern[$pos]
- 原写法示例:
- 保存文件后重启XAMPP的Apache服务
- 若后续访问仍出现同类语法报错,按相同规则将所有报错文件中
{}访问偏移的写法全部替换为[]即可。
内容的提问来源于stack exchange,提问作者Truewill24
相关产品推荐
相关产品推荐

