我在PHP脚本中使用EXIFTool来处理一些图像。最初,我使用的是".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
)
)
然后我发现了这个Staylopen库,它显著提高了处理时间,但它以这样的数组返回数据:
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")
)
));
我不理解第二种类型的数组。如何将其转换为与第一个类型相同的类型?
感谢@El_Vanja让我走上了正确的道路。第二个输出是用于创建数组的定义字符串。
我将字符串"$outputaray="预先添加到第二个输出中,并通过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);
现在$outputaray已经将该输出转换为数组,所以print_r($outputalay(显示如下:
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
)
)
)