0 ? 'utf-8' : 'iso-8859-1', get_pwg_charset() ); } } return $value; } /** * returns informations from EXIF metadata, mapping is done at the beginning * of the function * * @param string $filename * @return array */ function get_exif_data($filename, $map) { global $conf; $result = array(); if (!function_exists('read_exif_data')) { die('Exif extension not available, admin should disable exif use'); } // Read EXIF data if ($exif = @read_exif_data($filename)) { $exif = trigger_event('format_exif_data', $exif, $filename, $map ); foreach ($map as $key => $field) { if (strpos($field, ';') === false) { if (isset($exif[$field])) { $result[$key] = $exif[$field]; } } else { $tokens = explode(';', $field); if (isset($exif[$tokens[0]][$tokens[1]])) { $result[$key] = $exif[$tokens[0]][$tokens[1]]; } } } } if (!$conf['allow_html_in_metadata']) { foreach ($result as $key => $value) { // in case the origin of the photo is unsecure (user upload), we remove // HTML tags to avoid XSS (malicious execution of javascript) $result[$key] = strip_tags($value); } } return $result; } ?>