我有一个foreach循环,它工作正常 - 但由于某种原因,任何事情发生后不会输出。例如echo $ cpaTotal;不显示任何内容。
For loop打印出完美的
我哪里错了?
<!-- HTML CODE HERE -->
输出(html)
$key = '84abf';
$from = '2016/7/1';
$to = '2016/9/17';
$url = '/api/affreporting.asp?key='.$key.'&reportname=QuickSummaryReportDetailed&reportformat=xml&reportmerchantid=0&reportstartdate='.$from.'&reportenddate='.$to;
$clean_xml = str_ireplace(['SOAP-ENV:', 'SOAP:'], '', file_get_contents($url));
$xml = simplexml_load_string($clean_xml);
$obj = json_decode(json_encode($xml));
$cpaTotal = 'test';
foreach($obj->Body->reportresponse->row as $row)
{
$CPACommission = $row->CPACommission;
$merchant = $row->merchantname;
$Product1NetRevenue = $row->Product1NetRevenue;
echo "Merchant: ".$merchant. " | ";
echo "CPA Commission: ".$CPACommission." | ";
echo "Net Revenue: ".$Product1NetRevenue."</br>";
echo "<hr>";
}
echo $cpaTotal;
答案 0 :(得分:1)
如果您有时间并且愿意在代码中添加一些额外内容(仅用于调试目的),那么您可能需要尝试以下代码。请注意,除了输出未立即回显的事实之外,下面的代码与您的代码之间基本没有太大区别。
这样做的唯一原因是您只需注释掉echo $output
行,看看是否显示echo $cpaTotal
。如果它显示,那么这应该是一个提示,即您的数据吞噬了一些HTML标记(在foreach循环块内)。
<?php
$key = '84abf';
$from = '2016/7/1';
$to = '2016/9/17';
$url = '/api/affreporting.asp?key='.$key.'&reportname=QuickSummaryReportDetailed&reportformat=xml&reportmerchantid=0&reportstartdate='.$from.'&reportenddate='.$to;
$clean_xml = str_ireplace(['SOAP-ENV:', 'SOAP:'], '', file_get_contents($url));
$xml = simplexml_load_string($clean_xml);
$obj = json_decode(json_encode($xml));
$cpaTotal = 'test';
$output = '';
foreach($obj->Body->reportresponse->row as $row){
$CPACommission = $row->CPACommission;
$merchant = $row->merchantname;
$Product1NetRevenue = $row->Product1NetRevenue;
// INSTEAD OF INSTANT ECHO,
// TRY DELAYED ECHO BY HOLDING YOUR OUTPUT
// INSIDE A VARIABLE LIKE THIS:
$output .= "Merchant: " . $merchant . " | ";
$output .= "CPA Commission: " . $CPACommission . " | ";
$output .= "Net Revenue: " . $Product1NetRevenue . "</br>";
$output .= "<hr>";
}
// BE ALSO AWARE THAT YOUR DATA CONTAINS RAW HTML...
// SOMETIMES, UNCLOSED HTML TAGS OR SEMANTICALLY INACCURATE TAGS
// COULD CAUSE A "SWALLOW" EFFECT.... WHICH MEANS, YOUR DATA IS ACTUALLY RENDERED
// BUT NOT VISIBLE IN THE BROWSER DUE TO THE AFOREMENTIONED ERRORS.
echo $output;
echo $cpaTotal;
答案 1 :(得分:0)
</br>
无效HTML,请使用<br> or <br />
作为HTML和XHMTL兼容。
答案 2 :(得分:-1)
您应该在循环的最后一行使用<hr />
而不只是<hr>
。