i want to know from the syntax if a url is a picture or not. example: http://www.blah.com/plo52.jpg or png or gif will return true. if the url is ending with other extension, the function will return false.
Teşekkürler
i want to know from the syntax if a url is a picture or not. example: http://www.blah.com/plo52.jpg or png or gif will return true. if the url is ending with other extension, the function will return false.
Teşekkürler
O really bir görüntü eğer bu size söylemeyeceğim. Bu sadece ne appears url göre yapılacaktır size söyleyecektir:
$url = "http://somedomain.com/images/kittens.jpg";
if(preg_match("/\.(png|jpeg|jpg|gif|bmp)$/i", $url)) {
print "Appears to be an image";
} else {
print "Not an image.";
}
Çıkışlar:
Appears to be an image
Eğer. Php komut dosyaları veya. Aspx komut ile beslenen görüntüleri görmek düşünüyorsanız, bu yöntem başarısız olur unutmayın. Gerçekten güvenilir testi için, mim-türünü kontrol etmek gerekir.
Ben {, tüm görüntü indirmek gerekir, ve sonra bir dize döndürülür ayrıştırma dayalı ve Content-Type bir image/jpeg
olduğundan emin olmayacak şekilde bir HTTP HEAD İsteği yapmanızı öneririz [(2)]}, image/gif
, image/png
veya benzer bir görüntü İçerik Türleri.
<?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');
İade
dizge 'HTTP/1.1 200 OK
Cache-Control: max-age = 604800
Content-Length: 3438
Content-Type: image / png
Last-Modified: Sun, 10 Jan 2010 09:14:52 GMT
Kabul aralıkları: bayt
ETag: "32741b5ed591ca1: 0"
Sunucu: Microsoft-IIS/7.5
Tarih: Wed, 13 Ocak 2010 20:37:47 GMT
'(Uzunluk = 256)
Content-Type üstbilgisi emin, sahte olabilir .. ama zaman% 99 bu yöntem güvenilir neden olan, olmayacaktır.
Eğer gerçekten% 100 emin olmak için gerekiyorsa, kaynak indirmek ve getimagesize() a> kullanarak kontrol etmeniz gerekir.
Headers_list kullanın ve ardından Content-Type http://php.net/manual/en/function.headers-list.php kontrol
Sen pathinfo uzantısını almak için kullanabilirsiniz:
echo pathinfo('http://www.blah.com/plo52.jpg', PATHINFO_EXTENSION); // jpg
daha sonra bir fonksiyon içine kaydırmak
function hasExtension($uri, array $extensions = array('jpg','gif','png'))
{
return in_array(pathinfo($uri, PATHINFO_EXTENSION), $extensions);
}
hasExtension('http://www.blah.com/plo52.jpg'); // true
Bu aynı zamanda düzenli dosya yolları ve regex desen sınırlı değildir $ uzatma dizi geçmek edememek tarafından çalışacaktır. Fonksiyon olsa harf duyarlı olduğunu unutmayın.
Bu soruyu ve cevaplarını görmek how to best determine the MimeType of a file: