puedes usar la siguiente expresion regular
Código PHP:
$formatos = array("jpg", "gif", "png");
$regex_formato = "#^.+\.(".implode('|', $formatos).")$#";
if(preg_match($regex_formato, $_FILE["archivo"]["name"])
echo "tiene nombre de imagen";
else
echo " no tiene nombre de imagen";
Esto te valida que el nombre de la imagen acabe en .jpg, .png, .gif. Si quieres mas formatos solo se lo tienes que añadir al array. Pero te repito que esto solo te valida
el nombre de la imagen. Siempre te pueden colar con codigo malintencionado usando el nombre de una imagen. Para confirmar tienes comprobar tambien el tipo de la imagen.
Código PHP:
$_FILE["archivo"]["type"]; //tipo del archivo
Esto te devolvera el tipo de archivo. En caso de una imagen devolvera image/xxx. Ej: image/gif, image/jpg...
Usalo asi:
[PHP]
Código PHP:
$formatos = array("jpg", "gif", "png");
$regex_formato = "#.+\.(".implode('|', $formatos).")$#";
if(preg_match($regex_formato, $_FILE["archivo"]["name"] && preg_match("#^image/[a-z0-9]+$#", $_FILE["archivo"]["type"]))
echo "Es una imagen";
else
echo " No es una imagen.";
Tambien puedes usar esta funcion para saber que es una imagen.
getimagesize