diff --git a/src/utils/utils.php b/src/utils/utils.php --- a/src/utils/utils.php +++ b/src/utils/utils.php @@ -1320,7 +1320,15 @@ $trap = new PhutilErrorTrap(); try { - if (!function_exists('parse_ini_string')) { + $have_call = false; + if (function_exists('parse_ini_string')) { + if (defined('INI_SCANNER_RAW')) { + $results = @parse_ini_string($string, true, INI_SCANNER_RAW); + $have_call = true; + } + } + + if (!$have_call) { throw new PhutilMethodNotImplementedException( pht( '%s is not compatible with your version of PHP (%s). This function '. @@ -1329,8 +1337,6 @@ phpversion())); } - $results = @parse_ini_string($string, true, INI_SCANNER_RAW); - if ($results === false) { throw new PhutilINIParserException(trim($trap->getErrorsAsString())); }