doesn't work '/\f/' ); $replace = array( '\\\\\\', '\\"', '\\$', '\\t', '\\r', '\\n', // '\\b', '\\f', ); $string = preg_replace($special, $replace, $string); return '"' . $string . '"'; } // Requires an array public static function renderArray($array) { $data = array(); foreach ($array as $entry) { if ($entry instanceof IcingaConfigRenderer) { $data[] = $entry; } else { $data[] = self::renderString($entry); } } $str = '[ ' . implode(', ', $data) . ' ]'; if (strlen($str) < 60) { return $str; } // Prefix for toConfigString? return "[\n " . implode(",\n ", $data) . "\n]"; } public static function renderDictionary($dictionary) { $vals = array(); foreach ($dictionary as $key => $value) { $vals[] = rtrim(self::renderKeyValue(self::renderString($key), $value)); } // Prefix for toConfigString? return "{\n" . implode("\n", $vals) . "\n}"; } public static function renderExpression($string) { return "{{\n " . $string . "\n}}"; } public static function alreadyRendered($string) { return new IcingaConfigRendered($string); } public static function isReserved($string) { return in_array($string, self::$reservedWords); } public static function escapeIfReserved($string) { if (self::isReserved($string)) { return '@' . $string; } else { return $string; } } }