private static function sanitizeSectionsAndKeys_addPlaceholders($string)
{
$sanitizedChars = self::$sanitizedChars;
// Replace brackets in section names
// https://regex101.com/r/bT2nO7/2
$string = preg_replace_callback("/^\\[(.*)\\]/m", function ($match) use($sanitizedChars) {
$sectionWithPlaceholders = strtr($match[1], $sanitizedChars);
return "[{$sectionWithPlaceholders}]";
}, $string);
// Replace brackets and quotes in keys
// https://regex101.com/r/iD5oO0/3
$string = preg_replace_callback("/^(.*?) = /m", function ($match) use($sanitizedChars) {
$keyWithPlaceholders = strtr($match[1], $sanitizedChars);
return $keyWithPlaceholders . (isset($match[2]) ? $match[2] : "") . " = ";
}, $string);
return $string;
}