private function Parser::cleanup

Cleanups a YAML string to be parsed.

Parameters

string $value The input YAML string:

Return value

string A cleaned up YAML string

1 call to Parser::cleanup()
Parser::parse in drupal/core/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php
Parses a YAML string to a PHP value.

File

drupal/core/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php, line 543

Class

Parser
Parser parses YAML strings to convert them to PHP arrays.

Namespace

Symfony\Component\Yaml

Code

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;
}