1

ファイルからヘッダーを取得したい。ただし、CURLの戻り値はget_headersとは異なります。

理由はわかりません。結果は次のとおりです。

get_headersを使用

Array
(
    [0] => HTTP/1.0 200 OK
    [1] => Content-Type: image/jpeg
    [2] => Last-Modified: Wed, 14 Nov 2012 11:06:07 GMT
    [3] => X-Cache-Status: HIT
    [4] => Expires: Tue, 19 Jan 2038 03:14:07 GMT
    [5] => Cache-Control: max-age=2592000
    [6] => X-Cache: HIT
    [7] => Content-Length: 120185
    [8] => Connection: close
    [9] => Date: Fri, 16 Nov 2012 08:01:15 GMT
    [10] => Server: lighttpd/1.4.26
)

そしてCURLnoContent-Type〜>それが私が欲しいものです

Array
(
    [0] => HTTP/1.1 200 OK
    [1] => Content-Length: 120185
    [2] => Connection: close
    [3] => Date: Fri, 16 Nov 2012 08:01:42 GMT
    [4] => Server: lighttpd/1.4.26
    [5] => 
    [6] => 
)

これがcurl関数によるgetヘッダーです

function get_headers_curl($url) 
{ 
    $ch = curl_init(); 

    curl_setopt($ch, CURLOPT_URL,            $url); 
    curl_setopt($ch, CURLOPT_HEADER,         true); 
    curl_setopt($ch, CURLOPT_NOBODY,         true); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_TIMEOUT,        15); 

    $r = curl_exec($ch); 
    $r = split("\n", $r); 
    return $r; 
} 

設定した場合、Content-Typeを返すCURL

curl_setopt($ch,CURLOPT_HTTPGET,true);

しかし、それはファイルコンテンツ(本文)も返します。CURLを使用してファイルコンテンツを使用せずにファイルコンテンツタイプのみを正確に取得するにはどうすればよいですか?

4

2 に答える 2

1

get_headers は画像の情報を受け取っていますが、もう一方はそうではありません。URLを確認できると思います。どちらも同じでなければならないからです。

于 2012-11-16T08:18:35.943 に答える
1

CONTENT_TYPE やその他の cURL 情報は簡単に取得できます。

<?php
// Create a curl handle
$ch = curl_init('link_to_file');

curl_setopt($ch, CURLOPT_NOBODY, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, FALSE);

// Execute
curl_exec($ch);

// Check if any error occured
if (!curl_errno($ch)) {
    var_dump(curl_getinfo($ch, CURLINFO_CONTENT_TYPE));
}

// Close handle
curl_close($ch);

出力:

文字列(10) "画像/jpeg"

于 2012-11-16T09:24:15.833 に答える