En lugar de tratar de detectar el tipo de archivo por extensión, debe abrir el archivo y ver qué contiene.
$allowed_types = array(IMAGETYPE_GIF,IMAGETYPE_JPEG,IMAGETYPE_PNG);
if (in_array(exif_imagetype($_FILES["upload_picture"]["tmp_name"]), $allowed_types)){
//is either jpeg, png or gif
}
http://php.net/manual/en/function.exif-imagetype .php