/
Formatter.php
42 lines (34 loc) · 1.1 KB
/
Formatter.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
namespace Heidkaemper\ImportImageMetadata\Helpers;
class Formatter
{
public const IPTC_TAGS = [
'2#005' => 'title',
'2#055' => 'date',
'2#080' => 'author',
'2#090' => 'city',
'2#095' => 'state',
'2#101' => 'country',
'2#105' => 'headline',
'2#110' => 'credit',
'2#115' => 'source',
'2#116' => 'copyright',
'2#120' => 'caption',
];
public static function exif(array $data): array
{
$data = array_filter($data, fn ($value) => ! is_array($value) && ! empty($value));
return array_change_key_case($data, CASE_LOWER);
}
public static function iptc(array $data): array
{
$data = array_map(fn ($value) => is_array($value) && isset($value[0]) ? $value[0] : $value, $data);
$data = array_filter($data, fn ($value) => is_string($value) && ! empty($value));
foreach (self::IPTC_TAGS as $key => $tag) {
if (isset($data[$key])) {
$data[$tag] = $data[$key];
}
}
return array_change_key_case($data, CASE_LOWER);
}
}