Поэтому я поигрался с функцией read_exif_data и столкнулся с небольшой проблемой.
Я должен остановить загрузку файла, если изображение не имеет долготы & широта в нем.
проблема в том, что я не могу найти способ проверить, находится ли массив gps в данных exif.
Я читаю данные из $ _ FILES [‘spotImg’] [‘tmp_name’] И я получаю exif, который мне нужен.
Проблема только в том случае, если на изображении нет данных gps.
if($_FILES['spotImg']['error'] == 0){
$file = "image_".uniqid(). $_FILES['spotImg']['name'];
$img = WideImage::loadFromFile($_FILES['spotImg']['tmp_name']);
//check if exif data is avalible
$temp = $_FILES['spotImg']['tmp_name'];
$exif = read_exif_data($temp, 0, true);
echo "<pre">;
print_r($exif);
echo "</pre>;
}
Это то, о чем я думал, но это не работа
if(isset($exif['GPSLatitude'])){
//run code if long/latitude was found
}else{
//give a error message if long/latitude was NOT found
}
это массив, который я хочу проверить, если существует
[GPS] => Array
(
[GPSLatitudeRef] => N
[GPSLatitude] => Array
(
[0] => 55/1
[1] => 41/1
[2] => 2846/100
)
[GPSLongitudeRef] => E
[GPSLongitude] => Array
(
[0] => 12/1
[1] => 33/1
[2] => 1568/100
)
[GPSAltitudeRef] =>
[GPSAltitude] => 68780/4027
[GPSTimeStamp] => Array
(
[0] => 12/1
[1] => 48/1
[2] => 4621/100
)
[GPSSpeedRef] => K
[GPSSpeed] => 0/1
[GPSDateStamp] => 2015:09:16
)
У меня была похожая проблема с чтением свойства [‘direction’] изображения; у некоторых их нет.
Решение, которое я нашел, состояло в том, чтобы сделать проверку с! Empty () следующим образом:
if(!empty($exif['GPSLatitude'])){
//run code if long/latitude was found
}else{
//give an error message if long/latitude was NOT found
}
Эта проверка должна работать без каких-либо ошибок.
Других решений пока нет …