我正在使用 Amazom 的 aws-sdk-php-2 API 来接收来自 Amazon Simple Queue Service (Amazon SQS) 的消息。
我正在关注给定的教程:http ://docs.aws.amazon.com/aws-sdk-php-2/guide/latest/service-sqs.html
我的问题是:如果我使用给定的代码,我会收到消息正文作为字符串(包含 XML)。有没有办法将消息正文作为对象获取,或者作为关联数组获取?
我意识到有一些方法可以将 XML 转换为 PHP 对象(想到 SimpleXML),但它似乎是 api 的一个如此明显的特性,我无法想象它不提供它。但我在 API 中找不到它(http://docs.aws.amazon.com/aws-sdk-php-2/latest/class-Aws.Sqs.SqsClient.html)
我当前的代码:
<?php
use Aws\Sqs\SqsClient;
$client = SqsClient::factory(array(
'key' => '...',
'secret' => '...',
'region' => 'eu-west-1'
));
$queueUrl = 'https://sqs.eu-west-1.amazonaws.com/...';
$result = $client->receiveMessage(array(
'QueueUrl' => $queueUrl,
'MaxNumberOfMessages' => 3
));
foreach ($result->getPath('Messages/*/Body') as $messageBody) {
echo "<pre>";
echo htmlentities( print_r( $messageBody, true ) );
echo "</pre>";
}
// or alternatively
foreach( $result->get('Messages') as $message ){
echo "<pre>";
echo htmlentities( print_r( $message['Body'], true ) );
echo "</pre>";
echo "<hr />";
}
?>