You are here

public static function KeyValuePipeConverter::normalize in Markdown 8.2

Normalizes a key|value string into an array.

Parameters

mixed $value: The value to normalize.

Return value

array An associative array containing key/value pairs.

9 calls to KeyValuePipeConverter::normalize()
CommonMark::getConfiguration in src/Plugin/Markdown/CommonMark/CommonMark.php
Gets this plugin's configuration.
CommonMark::setConfiguration in src/Plugin/Markdown/CommonMark/CommonMark.php
Sets the configuration for this plugin instance.
CommonMark::validateConfigurationForm in src/Plugin/Markdown/CommonMark/CommonMark.php
ExternalLinkExtension::getConfiguration in src/Plugin/Markdown/CommonMark/Extension/ExternalLinkExtension.php
Gets this plugin's configuration.
ExternalLinkExtension::setConfiguration in src/Plugin/Markdown/CommonMark/Extension/ExternalLinkExtension.php
Sets the configuration for this plugin instance.

... See full list

File

src/Util/KeyValuePipeConverter.php, line 23

Class

KeyValuePipeConverter
Utility for converting arrays to key|value pipes and back again.

Namespace

Drupal\markdown\Util

Code

public static function normalize($value) {

  // Immediately return if already an array.
  if (is_array($value)) {
    return $value;
  }
  $array = [];

  // Normalize new lines.
  if (is_string($value) || is_object($value) && method_exists($value, '__toString')) {
    $value = preg_replace('/\\R/u', "\n", $value);
    foreach (explode("\n", preg_replace('/\\R/u', "\n", $value)) as $line) {

      // Treat lines without a pipe as just indexed values.
      if (strpos($line, '|') === FALSE) {
        $array[] = $line;
      }
      else {
        list($k, $v) = explode('|', $line, 2);
        $array[$k] = $v;
      }
    }
  }
  return $array;
}