我正在使用此处的S3库:http://undesigned.org.za/2007/10/22/amazon-s3-php-class/
它运行良好,但我很难从返回的数组结果中提取所需的数据。我抓住了桶内容,它返回的内容如下:
Array (
[sample_mpeg4.mp4] => Array (
[name] => sample_mpeg4.mp4
[time] => 1378922417
[size] => 245779
[hash] => dc77a8de8c091c19d86df74eb7
)
[steve.jpg] => Array (
[name] => steve.jpg
[time] => 1381270899
[size] => 61109
[hash] => a008368bf58515775c45e75c54
)
[stev-small-photo1.png] => Array (
[name] => stev-small-photo1.png
[time] => 1381270891
[size] => 680353
[hash] => ddcb22a103d4fa8360083ad70a
)
)
好的,很酷。我正在查询并匹配密钥以提取特定媒体上的特定信息。我的代码如下:
$searchVar = "steve.jpg";
$s3 = new S3(awsAccessKey, awsSecretKey);
$bucket_contents = $s3->getBucket("uploads.bucket.com");
//fetch array of current files
$searchAssetsBucket = array_keys($bucket_contents);
foreach ($searchAssetsBucket as $value) {
if($value == $searchVar) {
echo $value['time'];
}
}
if(empty($returnValue)) {
$returnValue = "Sorry no results for <b>$searchVar</b>.";
}
这对我不起作用。我真正想做的是获取代码,一旦匹配,就从[steve.jpg]数组返回名称/时间/大小/哈希变量。我不确定我在这里做错了什么,但这段代码只返回“s”。
有没有人有任何想法?我真的在这里输了......
答案 0 :(得分:1)
我会做这样的事情:
$myArray=$yourOriginalS3Array;
$searchVar='Steve.jpg';
// set up default/blank data in $matchedArr
foreach ($myArray as $key => $val)
{
if($key == $searchVar) {
$matchedArr=$val;
}
}
echo "The name is ".$matchedArr['name']." and the size is ".$matchedArr['size']."<br>";
这样,您正在检查原始数组的键,如果匹配,则返回与原始数组的第二级匹配的数组,该数组可以在代码中轻松访问。