Basho\Riak\Api\Http\Translator\ObjectResponse::parseSiblings PHP Method

parseSiblings() public method

public parseSiblings ( $response, $boundary, $vclock = '' )
    public function parseSiblings($response, $boundary, $vclock = '')
    {
        $siblings = [];
        $parts = explode($boundary, $response);
        foreach ($parts as $part) {
            $headers = [Http::VCLOCK_KEY => $vclock];
            $slice_point = 0;
            $empties = 0;
            $lines = preg_split('/\\n\\r|\\n|\\r/', trim($part));
            foreach ($lines as $key => $line) {
                if (strpos($line, ':')) {
                    $empties = 0;
                    list($key, $value) = explode(':', $line);
                    $value = trim($value);
                    if (!empty($value)) {
                        if (!isset($headers[$key])) {
                            $headers[$key] = $value;
                        } elseif (is_array($headers[$key])) {
                            $headers[$key] = array_merge($headers[$key], [$value]);
                        } else {
                            $headers[$key] = array_merge([$headers[$key]], [$value]);
                        }
                    }
                } elseif ($line == '') {
                    // if we have two line breaks in a row, then we have finished headers
                    if ($empties) {
                        $slice_point = $key + 1;
                        break;
                    } else {
                        $empties++;
                    }
                }
            }
            $data = implode(PHP_EOL, array_slice($lines, $slice_point));
            $siblings[] = $this->parseObject($data, $headers);
        }
        return $siblings;
    }