You are here

public static function RESTServer::parseContentHeader in Services 6.3

Same name and namespace in other branches
  1. 7.3 servers/rest_server/includes/RESTServer.inc \RESTServer::parseContentHeader()
2 calls to RESTServer::parseContentHeader()
RESTServer::fileRecieve in servers/rest_server/includes/RESTServer.inc
RESTServer::parseRequest in servers/rest_server/includes/RESTServer.inc

File

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

Class

RESTServer
@file Class for handling REST calls.

Code

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