Есть ли простое решение для извлечения определенного пользовательского заголовка в ответе CURL с использованием PHP? [Дубликат]

1

Когда я получаю все заголовки через

$response = curl_exec($curl);  
$header_size = curl_getinfo($curl,CURLINFO_HEADER_SIZE);
$result = substr($response, 0, $header_size);

Я получаю вывод как

HTTP/1.1 302 Found
Server: nginx
Date: Mon, 06 Jul 2015 14:58:06 GMT
Content-Type: text/html;charset=utf-8
Content-Length: 0
Connection: keep-alive
Status: 302 Found
Location: https://data.myserver.com 
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Request-Id: 9e2a562ec3ba73a72702e84fa7177c56
X-UA-Compatible: IE=Edge,chrome=1
Cache-Control: no-cache
X-Runtime: 0.046013
X-Rack-Cache: miss
Accept-Ranges: bytes
X-Varnish: 945594494
Age: 0
Via: 1.1 varnish
Strict-Transport-Security: max-age=31536000

Мне нужно только значение "Location:", в Java это было легко, но в PHP я не мог найти простое элегантное решение без использования регулярного выражения.

Теги:
curl
http

1 ответ

0

Может быть, это поможет вам:

<?php

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://php.net/manual/en/function.curl-getinfo.php');
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
var_export($info);

Результат:

array (
  'url' => 'http://php.net/manual/en/function.curl-getinfo.php',
  'content_type' => 'text/html; charset=utf-8',
  'http_code' => 200,
  'header_size' => 596,
  'request_size' => 81,
  'filetime' => -1,
  'ssl_verify_result' => 0,
  'redirect_count' => 0,
  'total_time' => 0.79269400000000001,
  'namelookup_time' => 0.028351999999999999,
  'connect_time' => 0.21638999999999997,
  'pretransfer_time' => 0.21643999999999997,
  'size_upload' => 0,
  'size_download' => 62628,
  'speed_download' => 79006,
  'speed_upload' => 0,
  'download_content_length' => -1,
  'upload_content_length' => 0,
  'starttransfer_time' => 0.41433799999999998,
  'redirect_time' => 0,
  'redirect_url' => '',
  'primary_ip' => '72.52.91.14',
  'certinfo' => 
  array (
  ),
  'primary_port' => 80,
  'local_ip' => '192.168.12.184',
  'local_port' => 36041,
)

И вы можете получить http://php.net/manual/en/function.curl-getinfo.php через $info['url'].

Ещё вопросы

Сообщество Overcoder
Наверх
Меню