You are here

protected function RESTServer::parseContentHeader in Services 7.3

Same name and namespace in other branches
  1. 6.3 servers/rest_server/includes/RESTServer.inc \RESTServer::parseContentHeader()

Extract value of the header string.

Parameters

string $value:

Return value

array $type Value that is used $type['value']

1 call to RESTServer::parseContentHeader()
RESTServer::parseRequestBody in servers/rest_server/includes/RESTServer.inc
Parse request body based on $_SERVER['CONTENT_TYPE'].s

File

servers/rest_server/includes/RESTServer.inc, line 420
Class for handling REST calls.

Class

RESTServer
@file Class for handling REST calls.

Code

protected function parseContentHeader($value) {
  $ret_val = array();
  $value_pattern = '/^([^;]+)(;\\s*(.+)\\s*)?$/';
  $param_pattern = '/([a-z]+)=(([^\\"][^;]+)|(\\"(\\\\"|[^"])+\\"))/';
  $vm = array();
  if (preg_match($value_pattern, $value, $vm)) {
    $ret_val['value'] = $vm[1];
    if (count($vm) > 2) {
      $pm = array();
      if (preg_match_all($param_pattern, $vm[3], $pm)) {
        $pcount = count($pm[0]);
        for ($i = 0; $i < $pcount; $i++) {
          $value = $pm[2][$i];
          if (drupal_substr($value, 0, 1) == '"') {
            $value = stripcslashes(drupal_substr($value, 1, mb_strlen($value) - 2));
          }
          $ret_val['param'][$pm[1][$i]] = $value;
        }
      }
    }
  }
  return $ret_val;
}