$headers = get_headers("http://www.domain.com/image.jpg");
これを使用して、ファイルが実際の画像であることを確認するにはどうすればよいですか?
$headers = get_headers("http://www.domain.com/image.jpg");
これを使用して、ファイルが実際の画像であることを確認するにはどうすればよいですか?
全くない。ヘッダーは、サーバーがこれをどのように認識しているかを(経由で)Content-type
通知する場合と通知しない場合がありますが、たとえばWebサーバーに配置してから名前を変更することを妨げるものは何もありません。Webサーバーはそれを提供しますが、それは間違いなくそうではありません。myfile.zip
myfile.jpg
Content-type: image/jpeg
Eugen Rieck が言ったように、それが画像かどうかは、ダウンロードしないとわかりません。サーバーが Content-Type ヘッダーを変更して、画像のように見せることは常に可能です。
ただし、ダウンロードした後、次の関数を使用して確認できます。
if (getimagesize('path/to/image.jpg')) {
// image
}
else {
// not an image
}
とにかく Content-Type を使用したい場合は、これでうまくいくはずです:
$headers = array_change_key_case (get_headers ('http://example.com/exampleimage.jpg', 1) );
if (substr ($headers ['content-type'], 0, 5) == 'image') {
// image
}
else {
// not an image
}
array_change_key_case()
すべての配列キーを小文字にするために使用されるため、大文字と小文字は区別されません。
結果配列で「Content-Type」を探し、「image/」で始まっていることを確認します
この方法では非常に簡単です。
$headers = get_headers( 'http://covers.openlibrary.org/b/isbn/9780141323367-S.jpg' );
$image_exist = implode(',',$headers);
if (strpos($image_exist, 'image') !== false)
{
echo 'Yups';
}
else
{
echo "Nopes";
}