PHP For循环 - 循环后没有输出

时间:2016-09-17 13:10:52

标签: php for-loop

我有一个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;

3 个答案:

答案 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>

相关问题