В чем разница между массивом в квадратных скобках и массивом с двойными кавычками, особенно в EXIFtool? - PullRequest
0 голосов
/ 30 марта 2020

Я использую EXIFTool в сценарии PHP для обработки некоторых изображений. Первоначально я использовал «- php», который возвращает данные в массиве, подобном этому:

Array
(
  [SourceFile] => 19770418_060000000_iOS.jpg
  [DateTimeOriginal] => 1977:04:18 00:00:00
  [Description] => Lake Huron Trip
  [Keywords] => Array
  (
    [0] => Lake Huron
    [1] =>  Memorial Day
    [2] =>  John Smith
    [3] =>  Janet Weiss
  )
)

, затем я нашел эту библиотеку Stayopen , которая значительно улучшает время обработки, но возвращает данные в массиве таковы:

Array(Array(
  "SourceFile" => "19770418_060000000_iOS.jpg",
  "EXIF" => Array(
    "DateTimeOriginal" => "1977:04:18 00:00:00"
  ),
  "XMP" => Array(
    "Description" => "Lake Huron Trip",
    "Subject" => Array("Lake Huron","Memorial Day","John Smith","Janet Weiss")
  )
));

Я не понимаю этот второй тип массива. Как я могу преобразовать его в тот же тип, что и первый тип?

1 Ответ

0 голосов
/ 30 марта 2020

Спасибо @El_Vanja за то, что поставили меня на правильный путь. Второй вывод - это строка определения, которая будет использоваться для создания массива.

Я добавил строку «$ outputarray =» к второму полученному выводу и провел ее через eval ().

Пример:

$output = "Array(Array(
  "SourceFile" => "19770418_060000000_iOS.jpg",
  "EXIF" => Array(
    "DateTimeOriginal" => "1977:04:18 00:00:00"
  ),
  "XMP" => Array(
    "Description" => "Lake Huron Trip",
    "Subject" => Array("Lake Huron","Memorial Day","John Smith","Janet Weiss")
  )
));"
$prependstring="$outputarray=";
eval($prependstring . $output);

и теперь $ outputarray преобразовал этот вывод в массив, поэтому print_r ($ outputarray) показывает это:

Array
(
    [SourceFile] => 19770418_060000000_iOS.jpg
    [EXIF] => Array
        (
            [DateTimeOriginal] => 1977:04:18 00:00:00
        )
    [XMP] => Array
        (
            [Description] => Lake Huron Trip
            [Subject] => Array
                (
                    [0] => Lake Huron
                    [1] => Memorial Day
                    [2] => John Smith
                    [3] => Janet Weiss
                )
        )
)
...