Нужна помощь PHP для назначения части данных из запроса Amazon S3 переменной - PullRequest
0 голосов
/ 07 сентября 2011

Я использую AWS PHP SDK вместе с кодом, приведенным ниже, чтобы вернуть список объектов, связанных с папкой в ​​моем сервисе Amazon S3:

$s3 = new AmazonS3();

$response = $s3->list_objects($bucket, array(
    'prefix' => 'myfolder/'
));

print_r($response->body);

Я не хочу использовать "print_r "part.

Кажется, что $ response - это массив с кучей вещей: Key, LastModified, ETag, Size, Owner

Как бы выглядел код PHPпереберите $ response и присвойте один из битов переменной.Например, одна часть данных в $ response - это «Ключ», который выглядит примерно так:

[Key] => myfolder/myfile.pdf

, что мне нужно:

myfolder/myfile.pdf

Пожалуйста, укажите код, который мне понадобитсяциклически перебирать данные в $ response и назначать каждый экземпляр «KEY» переменной с именем: $ haasfilepath.

Спасибо!

Ответы [ 3 ]

0 голосов
/ 07 сентября 2011
foreach ($response->body as $key => $haasfilepath)
{
 echo 'value for key ', $key, ' is ', $haasfilepath, '<br>';
}

или, если вам нужен только ключ «ключ»:

$haasfilepath = $response->body['key'];
echo $haasfilepath;
0 голосов
/ 07 сентября 2011

Насколько я понимаю, ответом будет XML-файл (не пара-массив-имя-значение-пара), и вам придется анализировать XML-файл.Попробуйте исследовать xpath и аналогичные методы в файле разбора XMl в php.

0 голосов
/ 07 сентября 2011

Прошло некоторое время с тех пор, как я использовал php, но это должно работать, если я понимаю вашу проблему.Если $ response - это массив, каждый элемент которого содержит ассоциативный массив для соответствующего объекта.

$hassfilepath = Array();
    foreach($response as $element){
        $haasfilepath << $element[key];
    }

Функция foreach позволит вам просмотреть все объекты, возвращенные в ответе.Внутри цикла вы затем помещаете каждый [Ключ] в массив $ haasfilepath.Теперь у вас есть переменная с массивом всех возвращенных ключей.

...