]+>/', $content, $matches) ) { // we got one! Now tease out the src element $html= new HTMLTokenizer( $matches[0] ); $tokens= $html->parse(); foreach ($tokens as $node ) { if ( 'img' == $node['name'] ) { $elements= $node['attrs']; } } } if ( ! isset( $elements['src'] ) ) { // no src= found, so don't try to do anything else return $content; } else { $url=get_location($elements['src']); str_replace($matches[0],$matches[0] . 'Map ', $content); return $content; } } private function get_location ($src) { $exif = exif_read_data($src, 0, true); $ns = (($exif['GPS']['GPSLatitudeRef']=="N") ? 1 : -1) ; $ndeg= explode("/",$exif['GPS']['GPSLatitude']['0']); $ndegrees = ($ndeg[0]/$ndeg[1]); $nmin= explode("/",$exif['GPS']['GPSLatitude']['1']); $nminutes = (($nmin[0]/$nmin[1])/60); $nsec= explode("/",$exif['GPS']['GPSLatitude']['2']); $nseconds = (($nsec[0]/$nsec[1])/360); $north = ($ns*($ndegrees+$nminutes+$nseconds)); $ew = (($exif['GPS']['GPSLongitudeRef']=="N") ? 1 : -1) ; $edeg= explode("/",$exif['GPS']['GPSLongitude']['0']); $edegrees = ($edeg[0]/$edeg[1]); $emin= explode("/",$exif['GPS']['GPSLongitude']['1']); $eminutes = (($emin[0]/$emin[1])/60); $esec= explode("/",$exif['GPS']['GPSLongitude']['2']); $eseconds = (($esec[0]/$esec[1])/360); $east = ($ew*($edegrees+$eminutes+$eseconds)); $url = "http://maps.google.com?q=$north,$east"; return $url; } } ?>