Use of undefined constant JSON_INVALID_UTF8_SUBSTITUTE - assumed 'JSON_INVALID_UTF8_SUBSTITUTE'

Viewed 14695

I recently cloned a laravel project and after running composer install, I am getting this error

In LogManager.php line 416:

Use of undefined constant JSON_INVALID_UTF8_SUBSTITUTE - assumed 'JSON_INVALID_UTF8_SUBSTITUTE' 

I have checked the web for solutions but can't find any related. Any assistance, please?

Also, how can I find the LogManager.php? It doesn't seem to be available when I search with VSCode

2 Answers

You should upgrade your php version to 7.2+. If that is not possible, here is a fix that i used. Just add this to your index.php file:

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

Possibly you use higher version of php CLI you use to run composer install on command line, than php version on Webserver configuration (this occasionally happen).

You just need to set the webserver configuration to use the same php CLI version you use on command line.

Related