/** * Get site (old or new) from request * @param \RollingCurl\Request $request * @return mixed * @throws \Exception */ public function getSite(\RollingCurl\Request $request) { if (preg_match("/Site: ([\\w]+)/i", $request->getHeaders()[1], $out)) { return $out[1]; } throw new \Exception('Could not get site from response!'); }
/** * Helper function to gather all the curl options: global, inferred, and per request * * @param Request $request * @return array */ private function prepareRequestOptions(Request $request) { // options for this entire curl object $options = $this->getOptions(); // set the request URL $options[CURLOPT_URL] = $request->getUrl(); // set the request method $options[CURLOPT_CUSTOMREQUEST] = $request->getMethod(); // posting data w/ this request? if ($request->getPostData()) { $options[CURLOPT_POST] = 1; $options[CURLOPT_POSTFIELDS] = $request->getPostData(); } // if the request has headers, use those, or if there are global headers, use those if ($request->getHeaders()) { $options[CURLOPT_HEADER] = 0; $options[CURLOPT_HTTPHEADER] = $request->getHeaders(); } elseif ($this->getHeaders()) { $options[CURLOPT_HEADER] = 0; $options[CURLOPT_HTTPHEADER] = $this->getHeaders(); } // if the request has options set, use those and have them take precedence if ($request->getOptions()) { $options = $request->getOptions() + $options; } return $options; }