Cleanups a YAML string to be parsed.
string $value The input YAML string:
string A cleaned up YAML string
private function cleanup($value) {
$value = str_replace(array(
"\r\n",
"\r",
), "\n", $value);
if (!preg_match("#\n\$#", $value)) {
$value .= "\n";
}
// strip YAML header
$count = 0;
$value = preg_replace('#^\\%YAML[: ][\\d\\.]+.*\\n#su', '', $value, -1, $count);
$this->offset += $count;
// remove leading comments
$trimmedValue = preg_replace('#^(\\#.*?\\n)+#s', '', $value, -1, $count);
if ($count == 1) {
// items have been removed, update the offset
$this->offset += substr_count($value, "\n") - substr_count($trimmedValue, "\n");
$value = $trimmedValue;
}
// remove start of the document marker (---)
$trimmedValue = preg_replace('#^\\-\\-\\-.*?\\n#s', '', $value, -1, $count);
if ($count == 1) {
// items have been removed, update the offset
$this->offset += substr_count($value, "\n") - substr_count($trimmedValue, "\n");
$value = $trimmedValue;
// remove end of the document marker (...)
$value = preg_replace('#\\.\\.\\.\\s*$#s', '', $value);
}
return $value;
}