", $thisone)[0]) . "")[1]))));
}
unlink($fname);
if ($jj == 0) {
$geodata[0]=$geod;
$gctmiddle.="0,+0_0"; //"HTTP.0&peninfo="; // HTTP.0%2Chttp.1%2Chttp.2%2Chttp.3%2Chttp.4%2Chttp.5&peninfo=Broome,+Hobart,Tennant Creek,+Cairns,Sydney,+Brisbane
$gctmiddle=str_replace("&peninfo=", "%2Chttp.0_0&peninfo=", $gctmiddle);
$gctsuffixlat.=" [" . explode(",",$geod)[0] . "|-179.99|~0~,2] , [" . explode(",",$geod)[0] . "|179.99|~0_0~,2]"; // &data="; // [-17.961944444444|122.23611111111|~Broome~,7] , [-42.88334|147.31666|~Hobart~,7] , [-19.647222222222|134.19027777778|~Tennant Creek~,2] , [-16.930277777778|145.77027777778|~Cairns~,2] , [-33.86667|151.21666|~Sydney~,1] , [-27.46667|153.03333|~Brisbane~,1]
$gctsuffixlong.=" [-55.9|" . explode(",",$geod)[1] . "|~0~,2] , [82.9|" . explode(",",$geod)[1] . "|~0_0~,2]"; // &data="; // [-17.961944444444|122.23611111111|~Broome~,7] , [-42.88334|147.31666|~Hobart~,7] , [-19.647222222222|134.19027777778|~Tennant Creek~,2] , [-16.930277777778|145.77027777778|~Cairns~,2] , [-33.86667|151.21666|~Sydney~,1] , [-27.46667|153.03333|~Brisbane~,1]
$gdata=",[" . $geod . ",~0~]";
$zdata[0]=$zd;
$countrydata[0]=$nc;
$countrycodedata[0]=$ncc;
$tablebits=str_replace("th id=xscountry onclick=", "th data-ctry='" . $nc . "' data-cc='" . $ncc . "' id=xscountry onclick=", $tablebits);
$tablebits=str_replace("th id=scountry onclick=", "th data-ctry='" . $nc . "' data-cc='" . $ncc . "' id=scountry onclick=", $tablebits);
$tablebits=str_replace("th id=xselevation onclick=", "th data-z='" . $zd . "' id=xselevation onclick=", $tablebits);
$tablebits=str_replace("th id=selevation onclick=", "th data-z='" . $zd . "' id=selevation onclick=", $tablebits);
} else {
if ($geodata[-1 + sizeof($geodata)] != "" && $geod != "") {
$wt=("" . great_circle_distance(explode(",",$geod)[0],explode(",",$geod)[1], explode(",",$geodata[-1 + sizeof($geodata)])[0], explode(",",$geodata[-1 + sizeof($geodata)])[1])) . " metres from previous";
array_push($distdata, $wt);
$tablebits=str_replace(">
1) {
$pftown=explode('/', $tn)[-1 + sizeof(explode('/', $tn))];
}
$tablebits=str_replace(" src=''", " data-z='" . $zd . "' title='" . $distdata[-1 + sizeof($distdata)] . "' onclick='alert(this.title);' " . $isdata[-1 + sizeof($isdata)] . " src='" . $idata[-1 + sizeof($idata)] . "'", $tablebits);
} else {
if (sizeof(explode('/', $tn)) == 3) {
$pfstate=explode('/', $tn)[1];
}
if (sizeof(explode('/', $tn)) > 1) {
$pftown=explode('/', $tn)[-1 + sizeof(explode('/', $tn))];
}
$tablebits=str_replace(" src=''", " data-z='" . $zd . "' " . $isdata[-1 + sizeof($isdata)] . " src='" . $idata[-1 + sizeof($idata)] . "'", $tablebits);
}
if ($nc != "") {
$tablebits=str_replace("th id=xfcountry onclick=", "th data-ctry='" . $nc . "' data-cc='" . $ncc . "' id=xfcountry onclick=", $tablebits);
$tablebits=str_replace("th id=fcountry onclick=", "th data-ctry='" . $nc . "' data-cc='" . $ncc . "' id=fcountry onclick=", $tablebits);
$tablebits=str_replace("th id=xfelevation onclick=", "th data-z='" . $zd . "' id=xfelevation onclick=", $tablebits);
$tablebits=str_replace("th id=felevation onclick=", "th data-z='" . $zd . "' id=felevation onclick=", $tablebits);
}
zip_close($zip);
unlink($zipfile);
}
echo "
Image Trip Start Finish Guessing Game - RJM Programming - October, 2018
" . $eachone . $tablebits . "";
if (!isset($_GET['mystery']) && !isset($_POST['mystery'])) {
echo "\n \n";
}
echo "";
exit;
}
$lasts="";
if (isset($_GET['animg'])) {
$ximage = urldecode($_GET['animg']);
$exifbit = "Metadata";
if (!isset($_GET['return'])) $lasts = " setTimeout(preob, 1000); ";
}
$javascript="
var image=encodeURIComponent('" . $image . $ximage . "');
function preob() {
ob(image);
}
function ob(tv) {
if ((tv + '~').toLowerCase().indexOf('.png~') != -1) {
image=encodeURIComponent(tv);
document.getElementById('myform').target='itwo';
document.getElementById('isub').value=document.getElementById('isub').value.replace('Exif ','Metadata ');
setTimeout(anth, 65000);
}
}
function anth() {
var dis=new Date();
top.document.location.href='//www.rjmprogramming.com.au/PHP/read_exif_off_image_rotate.php?return=' + dis.toGMTString() + '&animg=' + image;
}
function doalert() {
alert('Please click OK in more than 60 seconds to receive report.');
anth();
}
function doone() {
var xdis=new Date();
parent.document.getElementById('ione').src='//www.rjmprogramming.com.au/PHP/read_exif_off_image_rotate.php?return=' + xdis.toGMTString() + '&animg=' + image;
parent.document.getElementById('ione').style.display='block';
}
" . $lasts . "
";
if (isset($_GET['donothing'])) {
echo "";
} else {
$nform=" ";
$rotbit="";
$htmlis="";
$indiv="";
$maptemplate="//www.rjmprogramming.com.au/PHP/Map/map.php?title=&onclick=y&label=[%27Lat%27,&value=%27Lon%27,%20%27Name%27]&data=,%20[-33.967,151.2422,~~]";
$factor=1.0;
$sbit="";
$various=" ";
$wasvarious="youl" . "lneverfin" . "dthis";
if (isset($_GET['image'])) {
$image = urldecode($_GET['image']);
} else if (isset($_POST['image'])) {
$image = urldecode($_POST['image']);
} else if (file_exists("/Applications/MAMP/htdocs/clouds.jpg")) {
$image = "/Applications/MAMP/htdocs/clouds.jpg";
} else {
$image="";
if (file_exists("/tmp/pnginfo.txt") && isset($_GET['return'])) {
$stuff=@file_get_contents("/tmp/pnginfo.txt");
echo "" . $javascript . "" . str_replace("\n", " ", $stuff) . "
" . $nform . "";
try {
unlink("/tmp/pnginfo.txt");
} catch (Exception $ex) { }
} else {
echo "" . $javascript . "" . $nform . "";
}
exit;
}
$types = array(
1 => "GIF",
2 => "JPEG",
3 => "PNG",
4 => "SWF",
5 => "PSD",
6 => "BMP",
7 => "TIFF",
8 => "TIFF"
);
$imagetype = exif_imagetype($image);
if ($types[$imagetype] == "PNG") {
if (file_exists("/tmp/pnginfo.txt")) {
unlink("/tmp/pnginfo.txt");
}
exec('echo "identify -verbose ' . $image . ' > /tmp/pnginfo.txt ; chgrp rjmprogr /tmp/pnginfo.txt ; chown rjmprogr /tmp/pnginfo.txt" > /tmp/pnginfo.ksh');
if (file_exists("/tmp/pnginfo.ksh")) {
$bcnt=0;
while (!file_exists("/tmp/pnginfo.txt") && $bcnt < 10) {
if (file_exists("/tmp/pnginfo.txt")) {
sleep(5);
$stuff="";
$stuff=@file_get_contents("/tmp/pnginfo.txt");
if (trim($stuff) != "") {
//unlink("/tmp/pnginfo.txt");
//header("Location: http://www.rjmprogramming.com.au/PHP/read_exif_off_image_rotate.php?return=y");
echo "" . $javascript . "" . str_replace("\n", " ", $stuff) . "
";
try {
unlink("/tmp/pnginfo.txt");
} catch (Exception $ex2) { }
} else {
echo "" . $javascript . "
";
}
$bcnt=11;
exit;
} else {
sleep(6);
}
$bcnt++;
}
} else {
// Imagick Type // thanks to http://php.net/manual/en/imagick.getimageproperties.php
// ---------------------------------------------
$imagick_type = new Imagick($image);
// Open File
// ---------------------------------------------
$file_to_grab = $image;
$file_handle_for_viewing_image_file = fopen($file_to_grab, 'a+');
// Grab File
// ---------------------------------------------
$imagick_type->readImageFile($file_handle_for_viewing_image_file);
// Get Image Properties
// ---------------------------------------------
$imagick_type_properties = $imagick_type->getImageProperties('*', FALSE);
// Print Image Properties
// ---------------------------------------------
print("");
print_r($imagick_type_properties);
// Print Each Individual, Image Property
// ---------------------------------------------
foreach($imagick_type_properties as $value)
{
print("$value --- ");
print($imagick_type->getImageProperty("$value"));
print(" ");
}
print(" ");
}
} else {
if (array_key_exists($imagetype, $types)) {
$htmlis="" . $javascript . "Exif for " . $image . " Exif for zipfile " . $image . " " . " Image type of " . $image . " is: " . $types[$imagetype];
$exif = exif_read_data($image, 0, true);
foreach ($exif as $key => $section) {
foreach ($section as $name => $val) {
if (sizeof($val) > 1) {
$indiv.="
" . " $key.$name: " . $val[0];
$nthing=0.0;
$vs=explode("/",$val[0]);
if (sizeof($vs) == 1) {
$vs1=1.0;
} else {
$vs1=$vs[1];
}
if ($key == "GPS" && $name == "GPSAltitude") {
$vs=explode("/",$val[0]);
if (sizeof($vs) == 1) {
$vs1=1.0;
} else {
$vs1=$vs[1];
}
$various.=" up at " . ($vs[0] / $vs1) / ($factor);
$htmlis=str_replace($wasvarious, $wasvarious . " up at " . ($vs[0] / $vs1) / ($factor), $htmlis);
}
if ($key == "EXIF" && $name == "ShutterSpeedValue") {
$vs=explode("/",$val[0]);
if (sizeof($vs) == 1) {
$vs1=1.0;
} else {
$vs1=$vs[1];
}
$various.=" with (" . ($vs[0] / $vs1) . ",";
}
if ($key == "EXIF" && $name == "ApertureValue") {
$vs=explode("/",$val[0]);
if (sizeof($vs) == 1) {
$vs1=1.0;
} else {
$vs1=$vs[1];
}
$various.=($vs[0] / $vs1) . ")";
}
if ($key == "GPS" && $name == "GPSLatitude") {
$nthing+=($vs[0] / $vs1) / ($factor);
$factor*=60;
} else if ($key == "GPS" && $name == "GPSLongitude") {
$nthing+=($vs[0] / $vs1) / ($factor);
$factor*=60;
}
for ($jj=1; $jj
window.open(\"" . $maptemplate . "\",\"_blank\",\"top=50,left=50,height=500,width=500\"); ";
$sbit=" ";
$wasvarious="Geolocation Context for Photograph" . $various;
$htmlis=str_replace("Geolocation Context for Photograph ", "Geolocation Context for Photograph" . $various, str_replace("visibility:hidden", "visibility:visible", $htmlis));
}
} else {
if ($key == "FILE" && $name == "FileName") {
$maptemplate=str_replace("~~", "~" . urlencode($val) . "~", $maptemplate);
$maptemplate=str_replace("title=&", "title=" . urlencode($val) . urlencode($various) . "&", $maptemplate);
} else if ($key == "EXIF" && $name == "ShutterSpeedValue") {
$vs=explode("/",$val);
if (sizeof($vs) == 1) {
$vs1=1.0;
} else {
$vs1=$vs[1];
}
$various.=" with (" . ($vs[0] / $vs1) . ",";
} else if ($key == "EXIF" && $name == "ApertureValue") {
$vs=explode("/",$val);
if (sizeof($vs) == 1) {
$vs1=1.0;
} else {
$vs1=$vs[1];
}
$various.=($vs[0] / $vs1) . ")";
} else if ($key == "EXIF" && $name == "DateTimeOriginal") {
$various.=" on " . $val;
} else if ($key == "GPS" && $name == "GPSAltitude") {
$vs=explode("/",$val);
if (sizeof($vs) == 1) {
$vs1=1.0;
} else {
$vs1=$vs[1];
}
$various.=" up at " . ($vs[0] / $vs1) / ($factor);
$htmlis=str_replace($wasvarious, $wasvarious . " up at " . ($vs[0] / $vs1) / ($factor), $htmlis);
} else if ($key == "GPS" && $name == "GPSAltitudeRef" && trim($val) != "") {
$factor=-1.0;
} else if ($key == "GPS" && $name == "GPSAltitudeRef" && trim($val) == "") {
$factor=1.0;
} else if ($key == "GPS" && $name == "GPSLatitudeRef" && $val == "S") {
$factor=-1.0;
} else if ($key == "GPS" && $name == "GPSLongitudeRef" && $val == "W") {
$factor=-1.0;
} else if ($key == "GPS" && $name == "GPSLatitudeRef" && $val == "N") {
$factor=1.0;
} else if ($key == "GPS" && $name == "GPSLongitudeRef" && $val == "E") {
$factor=1.0;
}
$indiv.=" " . " $key.$name: $val";
}
if (($key.$name) == "IFD0Orientation") {
if (str_replace(" ","","$val") == "8") {
//$htmlis="" . $javascript . "Exif for " . $image . " Exif for zipfile " . $image . " RJM Programming - August, 2016 " . " Image type of " . $image . " is: " . $types[$imagetype];
$htmlis=str_replace("; norepeat; ", "; opacity:0.6; norepeat; -webkit-transform: rotate(270deg); -moz-transform: rotate(270deg); -ms-transform: rotate(270deg); -o-transform: rotate(270deg); transform: rotate(270deg); ", $htmlis);
} else if (str_replace(" ","","$val") == "6") {
//$htmlis="" . $javascript . "
Exif for " . $image . " Exif for zipfile " . $image . " RJM Programming - August, 2016 " . " Image type of " . $image . " is: " . $types[$imagetype];
$htmlis=str_replace("; norepeat; ", "; opacity:0.6; norepeat; -webkit-transform: rotate(90deg); -moz-transform: rotate(90deg); -ms-transform: rotate(90deg); -o-transform: rotate(90deg); transform: rotate(90deg); ", $htmlis);
} else if (str_replace(" ","","$val") == "3") {
//$htmlis="" . $javascript . "
Exif for " . $image . " Exif for zipfile " . $image . " RJM Programming - August, 2016 " . " Image type of " . $image . " is: " . $types[$imagetype];
$htmlis=str_replace("; norepeat; ", "; opacity:0.6; norepeat; -webkit-transform: rotate(180deg); -moz-transform: rotate(180deg); -ms-transform: rotate(180deg); -o-transform: rotate(180deg); transform: rotate(180deg); ", $htmlis);
}
}
}
}
if (str_replace("transXXXform:","",$htmlis) != $htmlis) {
echo str_replace("
" . $indiv . "
" . $nform . $sbit . "";
} else {
echo $htmlis . $indiv . "
" . $nform . $sbit . "";
}
} else {
echo "
" . "Not a valid image type for " . $image . " or Exif functionality not enabled." . $nform;
}
}
}
?>