private function UriTemplate::parseExpression

Parse an expression into parts

Parameters

string $expression Expression to parse:

Return value

array Returns an associative array of parts

1 call to UriTemplate::parseExpression()
UriTemplate::expandMatch in drupal/core/vendor/guzzle/parser/Guzzle/Parser/UriTemplate/UriTemplate.php
Process an expansion

File

drupal/core/vendor/guzzle/parser/Guzzle/Parser/UriTemplate/UriTemplate.php, line 72

Class

UriTemplate
Expands URI templates using an array of variables

Namespace

Guzzle\Parser\UriTemplate

Code

private function parseExpression($expression) {

  // Check for URI operators
  $operator = '';
  if (isset(self::$operatorHash[$expression[0]])) {
    $operator = $expression[0];
    $expression = substr($expression, 1);
  }
  $values = explode(',', $expression);
  foreach ($values as &$value) {
    $value = trim($value);
    $varspec = array();
    $substrPos = strpos($value, ':');
    if ($substrPos) {
      $varspec['value'] = substr($value, 0, $substrPos);
      $varspec['modifier'] = ':';
      $varspec['position'] = (int) substr($value, $substrPos + 1);
    }
    elseif (substr($value, -1) == '*') {
      $varspec['modifier'] = '*';
      $varspec['value'] = substr($value, 0, -1);
    }
    else {
      $varspec['value'] = (string) $value;
      $varspec['modifier'] = '';
    }
    $value = $varspec;
  }
  return array(
    'operator' => $operator,
    'values' => $values,
  );
}