JSON_INVALID_UTF8_SUBSTITUTE常量未定义的使用 - 假定为'JSON_INVALID_UTF8_SUBSTITUTE'。

16

最近我克隆了一个Laravel项目,在运行composer install之后,我遇到了这个错误

In LogManager.php line 416:

Use of undefined constant JSON_INVALID_UTF8_SUBSTITUTE - assumed 'JSON_INVALID_UTF8_SUBSTITUTE' 

我已经检查过网上的解决方案,但没有找到相关的。请帮助一下,谢谢。

另外,我该如何找到LogManager.php? 当我在VSCode中搜索时似乎找不到。


5
检查你的PHP版本 - 来自手册 - 在7.2.0中增加了JSON_INVALID_UTF8_IGNORE和JSON_INVALID_UTF8_SUBSTITUTE选项。 - Nigel Ren
1
@NigelRen 请帮忙解释如何处理 Laravel 应用程序中抛出的错误。这是针对 PHP 版本 7.2 的特定问题,与 Laravel 日志系统相关。 - Mena
你找到解决方案了吗?我也遇到了同样的问题。 - Faisal Mehmood Awan
2个回答

17

你应该将你的PHP版本升级到7.2+。如果无法升级,这是我使用的修复方法。只需将以下内容添加到你的index.php文件中:

if (!defined('JSON_INVALID_UTF8_SUBSTITUTE')) {
    //PHP < 7.2 Define it as 0 so it does nothing
    define('JSON_INVALID_UTF8_SUBSTITUTE', 0);
}

0

可能您在命令行上使用的 PHP CLI 版本比 Web 服务器配置中的 PHP 版本更高(这种情况偶尔会发生),用于运行 composer install

您只需要将 Web 服务器配置设置为使用与命令行上使用的相同的 PHP CLI 版本即可。


这也是我的问题。在终端中使用 php -version 返回 7.3。但如果我创建一个包含 phpinfo();test.php 文件,则版本仍为 7.1。 - Kokodoko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接