使用概述的 foreach 循环解决的第一种方法是获取所需数组的键并使用 in_array 执行检查。如果密钥在$allowedKeys 数组中,那么它将被包含在内。
另一种方法是只对所有输出进行 json_encode,这样您就不会从 exif 函数中丢失数据。
<?php
$exif = exif_read_data('IMG_1591.jpeg');
// Approach 1 (key found)
$allowedKeys = ['FileName','FileDateTime'];
$values = [];
foreach($exif as $key => $val) {
if(in_array($key, $allowedKeys)) {
$values[] = [$key => $val];
}
}
var_dump(json_encode($values));
// Output: string(58) "[{"FileName":"IMG_1591.jpeg"},{"FileDateTime":1615402941}]"
// Approach 2 (straight output to JSON)
var_dump(json_encode($exif));
// Output: string(274) "{"FileName":"IMG_1591.jpeg","FileDateTime":1615402941,"FileSize":192200,"FileType":2,"MimeType":"image\/jpeg","SectionsFound":"ANY_TAG, IFD0","COMPUTED":{"html":"width=\"1119\" height=\"839\"","Height":839,"Width":1119,"IsColor":1,"ByteOrderMotorola":0},"Software":"Google"}"