0

ページが実際に存在するかどうかを確認するこの気の利いた方法を見つけました。

$headers=@get_headers($imageurl);
if(strpos($headers[0],'200')===false){
    echo "not valid";
    exit;
}

ただし、達成する必要があるのは、そのページが本当に単なる画像かどうかを確認することです。たとえば、www.google.com/image.jpg というリンクを試すと、Google には独自のエラー ページがあるため、200 が返されます。ただし、そのページに画像がないことだけでなく、だけでなく、他のコンテンツがある場合でも、そのページには画像だけではありません (ここのように: http://www.kapstadt-entdecken.de/wp-content/gallery/robben-island/1robben-island .jpg )。

どうすればそれを達成できますか?

どうもありがとう!

デニス

4

3 に答える 3

1

ヘッダーを取得するときに HEAD リクエストを使用することをお勧めします (デフォルトではそうしません)。

stream_context_set_default(array(
    'http' => array(
        'method' => 'HEAD'
    )
));

次に、2 番目のパラメーターを に渡しget_headersて解析することができます。

$headers = get_headers($imageurl, 1);

次に、通常どおり残りを確認できます。

if (strpos($headers[0], '200') === false) {
    echo "not valid";
    exit;
}

if (isset($headers['Content-Type']) && 0 === strncmp($headers['Content-Type'], 'image/', 6)) {
    echo "valid image";
} else {
    echo "probably not an image";
}
于 2012-05-07T18:51:00.107 に答える
0
$headers = @get_headers($imageurl);

$is_image = false;
foreach ($headers as $header) {
    if (strpos($header, 'Content-Type: image/') === 0) {
        $is_image = true;
        break;
    }
}
于 2012-05-07T18:42:24.703 に答える
0

また、get_headers ...そのうちの1つになります

image/png
image/jpeg
image/gif

それで

$isImage = false;
foreach($headers as $header){
    if(strpos($header,'image/')==true){
        $isImage = true;
    }
}
于 2012-05-07T18:43:20.117 に答える