Я использую репозиторий AmazonMwsComplete на GitHub для отправки запросов к Amazon AWS API, в частности к вызову GetReport. Я получаю положительный ответ на мои запросы, поэтому все кажется работающим нормально, единственная проблема заключается в том, что он, по-видимому, преобразует XML-ответ в строку с разделителями табуляции, которую я не могу понять, как правильно отформатировать в массив PHP.
По сути, ответ выглядит примерно так:
string(52148) "sku asin price quantity Business Price Quantity Price Type Quantity Lower Bound 1 Quantity Price 1 Quantity Lower Bound 2 Quantity Price 2 Quantity Lower Bound 3 Quantity Price 3 Quantity Lower Bound 4 Quantity Price 4 Quantity Lower Bound 5 Quantity Price 5 ProductTaxCode VatExclusivePrice VatExclusiveBusinessPrice VatExclusiveQuantityPrice1 VatExclusiveQuantityPrice2 VatExclusiveQuantityPrice3 VatExclusiveQuantityPrice4 VatExclusiveQuantityPrice5
XX-XXXX-XXXX XXXXXXXXXX 0.01 1
XX-XXXX-XXX XXXXXXXXXX 0.01 1
XXX-XXX-XXX XXXXXXXXXX 0.01 1“
Когда я конвертирую это в массив, это выглядит так:
array(22702) {
[0]=>
string(3) "sku"
[1]=>
string(4) "asin"
[2]=>
string(5) "price"
[3]=>
string(8) "quantity"
[4]=>
string(14) "Business Price"
[5]=>
string(19) "Quantity Price Type"
[6]=>
string(22) "Quantity Lower Bound 1"
[7]=>
string(16) "Quantity Price 1"
[8]=>
string(22) "Quantity Lower Bound 2"
[9]=>
string(16) "Quantity Price 2"
[10]=>
string(22) "Quantity Lower Bound 3"
[11]=>
string(16) "Quantity Price 3"
[12]=>
string(22) "Quantity Lower Bound 4"
[13]=>
string(16) "Quantity Price 4"
[14]=>
string(22) "Quantity Lower Bound 5"
[15]=>
string(16) "Quantity Price 5"
[16]=>
string(14) "ProductTaxCode"
[17]=>
string(17) "VatExclusivePrice"
[18]=>
string(25) "VatExclusiveBusinessPrice"
[19]=>
string(26) "VatExclusiveQuantityPrice1"
[20]=>
string(26) "VatExclusiveQuantityPrice2"
[21]=>
string(26) "VatExclusiveQuantityPrice3"
[22]=>
string(26) "VatExclusiveQuantityPrice4"
[23]=>
string(40) "VatExclusiveQuantityPrice5
XX-XXXX-XXXX"
[24]=>
string(10) "XXXXXXXXX"
[25]=>
string(5) "0.01"
[26]=>
string(1) "1"
[27]=>
string(0) ""
[28]=>
string(0) ""
[29]=>
string(0) ""
[30]=>
string(0) ""
}
Есть несколько проблем с этим, заголовок «VatExclusiveQuantityPrice5» смешивается с первым фрагментом информации, который является SKU продукта, поэтому он находится в том же элементе в массиве.
В строке с разделителями табуляции также используется 20 табуляций в качестве «новой строки», поэтому я получаю 20 пустых элементов в массиве перед следующей информацией.
У меня есть одно возможное решение, которое включает в себя преобразование его в текстовый файл и импорт прямо в базу данных, но, конечно, должен быть простой способ преобразовать это в массив PHP, вариант с базой данных кажется гораздо более сложным способом обращаться с этой информацией.