Мне не нравится перекликаться с еще одним набором значений ориентации, но, по моему опыту, используя любое из значений, перечисленных выше, я всегда получал перевернутые изображения при загрузке портретных снимков ориентации непосредственно с iPhone. Вот оператор switch, с которым я закончил.
switch ($exif['Orientation']) {
case 3:
$image = imagerotate($image, -180, 0);
break;
case 6:
$image = imagerotate($image, -90, 0);
break;
case 8:
$image = imagerotate($image, 90, 0);
break;
}