formatHeadersForCurl() 공개 정적인 메소드

Returns a list of headers from a key/value paired array.
public static formatHeadersForCurl ( array $headers ) : array
$headers array Headers as key/value pairs.
리턴 array List of headers ['Content-Type: text/html', '...'].
예제 #1
0
 /**
  * Outputs a response depending on the set cURL option.
  *
  * The response body can be written to a file, returned, echoed or
  * passed to a custom function.
  *
  * The response header might be passed to a custom function.
  *
  * @param  Response $response    Response which contains the response body.
  * @param  array    $curlOptions cURL options which are not stored within the Response.
  * @param  resource $ch          cURL handle to add headers if needed.
  *
  * @return null|string
  */
 public static function handleOutput(Response $response, array $curlOptions, $ch)
 {
     // If there is a header function set, feed the http status and headers to it.
     if (isset($curlOptions[CURLOPT_HEADERFUNCTION])) {
         $headerList = array(HttpUtil::formatAsStatusString($response));
         $headerList += HttpUtil::formatHeadersForCurl($response->getHeaders());
         $headerList[] = '';
         foreach ($headerList as $header) {
             call_user_func($curlOptions[CURLOPT_HEADERFUNCTION], $ch, $header);
         }
     }
     $body = $response->getBody();
     if (!empty($curlOptions[CURLOPT_HEADER])) {
         $body = HttpUtil::formatAsStatusWithHeadersString($response) . $body;
     }
     if (isset($curlOptions[CURLOPT_WRITEFUNCTION])) {
         call_user_func($curlOptions[CURLOPT_WRITEFUNCTION], $ch, $body);
     } elseif (isset($curlOptions[CURLOPT_RETURNTRANSFER]) && $curlOptions[CURLOPT_RETURNTRANSFER] == true) {
         return $body;
     } elseif (isset($curlOptions[CURLOPT_FILE])) {
         $fp = $curlOptions[CURLOPT_FILE];
         fwrite($fp, $body);
         fflush($fp);
     } else {
         echo $body;
     }
 }
예제 #2
0
 /**
  * Returns a response for specified HTTP request.
  *
  * @param Request $request HTTP Request to send.
  *
  * @return Response Response for specified request.
  */
 public function send(Request $request)
 {
     $ch = curl_init($request->getUrl());
     curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $request->getMethod());
     curl_setopt($ch, CURLOPT_HTTPHEADER, HttpUtil::formatHeadersForCurl($request->getHeaders()));
     if (!is_null($request->getBody())) {
         curl_setopt($ch, CURLOPT_POSTFIELDS, $request->getBody());
     }
     curl_setopt_array($ch, $request->getCurlOptions());
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($ch, CURLOPT_FAILONERROR, false);
     curl_setopt($ch, CURLOPT_HEADER, true);
     list($status, $headers, $body) = HttpUtil::parseResponse(curl_exec($ch));
     return new Response(HttpUtil::parseStatus($status), HttpUtil::parseHeaders($headers), $body, curl_getinfo($ch));
 }