Je suggère réaliser une tête HTTP demande donc vous aurez pas besoin de télécharger l'image entière, puis en fonction de la chaîne retournée Parse et assurez-vous que le Content-Type est un image/jpeg
, image/pjpeg
, image/gif
, ou image/png
image similaire Types de contenu.
<?php
function parseImage($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
$content = curl_exec($ch);
var_dump($content);
curl_close($ch);
}
parseImage('http://sstatic.net/so/img/logo.png');
Retours
chaîne
« HTTP/1.1 200 OK
Cache-Control: max-age = 604800
Content-Length: 3438
Content-Type : image/png
Dernière modification ified: Sun, 10 Jan 2010 09:14:52 GMT
Accept-Ranges: bytes
ETag: "32741b5ed591ca1: 0"
serveur: Microsoft-IIS/7.5
date : Mer Jan 2010 20:37:47 13 GMT
'(longueur = 256)
Le Content-Type L'en-tête peut être usurpé, bien sûr ... mais 99% du temps ce ne sera pas, ce qui explique pourquoi cette méthode est fiable.
L'extension ne vous dira si oui ou non il est en fait une image. –