Qual è il modo migliore e più veloce per verificare se l'immagine è valida in PHP? Ho bisogno che sia in grado di controllare GIF, JPG e immagini PNG.Qual è il modo migliore e più veloce per verificare se l'immagine è valida in PHP?
risposta
immagino getimagesize
:
list($width, $height, $type, $attr) = getimagesize("path/to/image.jpg");
if (isset($type) && in_array($type, array(
IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF))) {
...
}
Leggi documentazione: non utilizzare getimagesize() per verificare che un determinato file sia un'immagine valida. http://php.net/manual/en/function.getimagesize.php –
Io uso questa funzione ... controlla gli URL troppo
function isImage($url){
$params = array('http' => array(
'method' => 'HEAD'
));
$ctx = stream_context_create($params);
$fp = @fopen($url, 'rb', false, $ctx);
if (!$fp)
return false; // Problem with url
$meta = stream_get_meta_data($fp);
if ($meta === false){
fclose($fp);
return false; // Problem reading data from url
}
}
sì hai ragione ... aggiunto parentesi. –
exif_imagetype è una soluzione migliore.
Questo metodo è più veloce rispetto all'utilizzo di getimagesize. Per quotare php.net "Il valore restituito è lo stesso valore che getimagesize() restituisce nell'indice 2 ma exif_imagetype() è molto più veloce."
if(exif_imagetype('path/to/image.jpg')) {
// your image is valid
}
Ovviamente funziona solo quando l'estensione EXIF è abilitata. Nel mio caso non è il caso e non ho alcun controllo su questo :( –
Io uso questo:
function is_image($path)
{
$a = getimagesize($path);
$image_type = $a[2];
if(in_array($image_type , array(IMAGETYPE_GIF , IMAGETYPE_JPEG ,IMAGETYPE_PNG , IMAGETYPE_BMP)))
{
return true;
}
return false;
}
exif_imagetype è molto più veloce di getimagesize e non usa gd-Lib (lasciando una più snella impronta mem)
function isImage($pathToFile)
{
if(false === exif_imagetype($pathToFile))
return FALSE;
return TRUE;
}
Come raccomandato dal PHP documentation:
"Non utilizzare getimagesize() per verificare che un determinato file sia un'immagine valida. Utilizzare ap soluzione appositamente creata come l'estensione Fileinfo. "
Ecco un esempio:
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$type = finfo_file($finfo, "test.jpg");
if (isset($type) && in_array($type, array("image/png", "image/jpeg", "image/gif"))) {
echo 'This is an image file';
} else {
echo 'Not an image :(';
}
- 1. Qual è il modo più veloce per verificare se Input String è un'espressione RPN corretta?
- 2. Qual è il modo più veloce per verificare se due Tbitmap sono uguali?
- 3. Qual è il modo più veloce per verificare se una classe ha una funzione definita?
- 4. Qual è il modo più veloce per verificare se due numeri dati sono coprimi?
- 5. Il modo migliore per verificare se una variabile è nulla?
- 6. C# in VS2005: qual è il modo migliore per verificare se una stringa è vuota?
- 7. Qual è il modo migliore per verificare se un UIAlertController è già presente?
- 8. Qual è il modo migliore per verificare se la vista è visibile sulla finestra?
- 9. Verificare se un'espressione regolare è valida in PHP
- 10. Qual è il modo migliore per verificare se un attributo esiste ed è impostato?
- 11. Cosa è più veloce e migliore per determinare se esiste una chiave di array in PHP?
- 12. Il modo più veloce per verificare se esiste un oggetto
- 13. Qual è il parser XML più veloce in PHP?
- 14. Qual è il rendimento migliore in PHP?
- 15. Lua - Se e, cosa è più veloce?
- 16. Qual è il modo più veloce per confrontare due oggetti in PHP?
- 17. Quindi qual è il modo migliore per verificare se esiste una riga? ESISTE, COUNT o num_rows?
- 18. Il modo più veloce per verificare se un tipo è blittabile?
- 19. Qual è il modo più veloce per verificare le cifre duplicate di un numero?
- 20. Qual è il modo migliore per verificare se una stringa contiene un URL in Java/Android?
- 21. qual è il modo migliore per verificare se una stringa esiste in un altro?
- 22. Qual è il modo migliore per verificare se l'utente può caricare file?
- 23. Qual è il modo migliore per organizzare più sottoview?
- 24. Qual è il modo migliore/più sicuro per reinstallare Homebrew?
- 25. PHP: Qual è il più veloce SOAP, file_get_contents o Curl?
- 26. Qual è il modo migliore per gestire più azioni?
- 27. Qual è il modo migliore per bloccare più std :: mutex?
- 28. Qual è il modo più affidabile per verificare se una variabile JavaScript è nullo?
- 29. Qual è il modo migliore per selezionare più righe per ID in sql?
- 30. Qual è il modo migliore per generare automaticamente getter e setter per una classe in php?
Che cosa si intende per "valido"? Verifica se il file di immagine è nel formato corretto? –