我使用带有结算ID的GetReport创建了一个页面。
到目前为止,我能够从亚马逊卖家那里获得数据,但我想弄清楚如何将报告变成一个整洁的表格。
这是我的代码:
function invokeGetReport(MarketplaceWebService_Interface $service, $request) {
try {
$response = $service->getReport($request);
echo ("<table class='table table-bordered table-striped table-hover table-condensed table-responsive'>\n");
echo ("<thead>");
echo ("<tr> ");
echo ("<th >Settlement ID</th> ");
echo ("<td>");
echo ("Settlement ID Report display here");
echo ("</td></tr>");
echo ("<tr> ");
echo ("<th>GetReportResponse\n</th> ");
echo ("<td>");
if ($response->isSetGetReportResult()) {
$getReportResult = $response->getGetReportResult();
echo (" GetReport");
echo ("</td></tr>");
}
//Report Content
echo ("<tr> ");
echo ("<th>Settlement ID</th> ");
echo ("<td>");
echo (stream_get_contents($request->getReport()) . "\n");
echo ("</td></tr>");
} catch (MarketplaceWebService_Exception $ex) {
echo("Caught Exception: " . $ex->getMessage() . "\n");
echo("Response Status Code: " . $ex->getStatusCode() . "\n");
echo("Error Code: " . $ex->getErrorCode() . "\n");
echo("Error Type: " . $ex->getErrorType() . "\n");
echo("Request ID: " . $ex->getRequestId() . "\n");
echo("XML: " . $ex->getXML() . "\n");
echo("ResponseHeaderMetadata: " . $ex->getResponseHeaderMetadata() . "\n");
echo ("</td></tr>");
echo ("</table>\n");
}
}
如你所见:
stream_get_contents($request->getReport())
是我提交结算报告的地方,但是,我希望getReport()
在整洁的表格中详细分析更多细节,此时它看起来像
我希望更喜欢这个
答案 0 :(得分:1)
针对getReport的{亚马逊MWS文档here
您对$request->getReport()
的函数调用返回一个标签分隔文件,您可以非常轻松地将其转换为数组,然后循环并将其打印为表格,尝试使用PHP str-getcsv或fgetcsv函数并使用制表符作为分隔符
如果您需要标题并希望将其用作关联数组,那么 csv 有很多指南可供使用,但 tsv ,因为我不熟悉您所使用的特定图书馆,因此我无法从您的代码中说出太多信息,但我无法向您指出一个能为您做到这一点的解决方案,但是有一些用于CSV的人可以通过一些调整来开始工作,例如:
this(stackoverflow.com),this(stackoverflow.com)和this(php.net)