0

foreach内に次のものがあります....これは機能しますが、$valueごとに2セットの値があり、最初の値のみが表示されます

<?php
$info = simplexml_load_file("https://api.website.co.za/ACCESS_GetAccountSessions?"); 
echo "<ul info>";

foreach ($info->sessions as $sessions): 
$count = $sessions->{'session-count'};
$ip = $sessions->session->{'ip-address'};
$nas = $sessions->session->{'nas-ip-address'};
$port = $sessions->session->{'nas-port'};
$phone = 'N/A';

            ?>


<?php
                    echo '<tr>',

              '<td class="blockcontentwhite sessionicon">',
              '<td class="blockcontentwhite center">' . ("$ip") . '</td>',
              '<td class="blockcontentwhite center">' . ("$nas") . '</td>',
              '<td class="blockcontentwhite center">' . ("$port") . '</td>',
              '<td class="blockcontentwhite center">' . ("$phone") . '</td>',

                    '</tr>';
                    endforeach;
                    ?>

したがって、基本的に 1 行目のテーブル内に $ip 、 $nas 、 $port 、および $phone が表示されますが、2 行目の 2 番目の値は表示されません。アイデアはありますか?

みんなありがとう

4

2 に答える 2

2

オブジェクトに配列としてアクセスしようとしています。foreach で使用する配列を (プロパティとして)含む$info->sessionsSimpleXMLElement Objectです。

foreach ( foreach ($info->sessions as $sessions):) をforeach ($info->sessions->session as $sessions):andに変更します。

$count = $sessions->{'session-count'};
$ip = $sessions->session->{'ip-address'};
$nas = $sessions->session->{'nas-ip-address'};
$port = $sessions->session->{'nas-port'};
$phone = 'N/A';

に:

$count = $info->sessions->{'session-count'};
$ip = $sessions->{'ip-address'};
$nas = $sessions->{'nas-ip-address'};
$port = $sessions->{'nas-port'};
$phone = 'N/A';
于 2013-03-23T08:40:16.820 に答える
0

あなたが尋ねた質問に関して、Jueecyは正しいと思います。

しかし、それ以外にも問題があるように見えることに気付きました。コードは複数のテーブルを生成するように見えますが、同じテーブルに複数の行が必要なだけだと思います。

行を生成している場所に foreach を移動することをお勧めします。

<?php
$info = simplexml_load_file("https://api.website.co.za/ACCESS_GetAccountSessions?"); 
echo "<ul info>";
?>

<input type="hidden" name="ctl00$ctl00$contentDefault$contentControlPanel$hdnIsSecure"     id="ctl00_ctl00_contentDefault_contentControlPanel_hdnIsSecure" value="false" />
<table id="active_sessions_table" class="blocktable centered" cellpadding="0"   cellspacing="0">
<tr class="blockheader">
<td id="active_sessions_title" class="left" colspan="2">
      <label  class="floatleft">Current connections</label></td>
</tr>
<tr id="trconnections">
<td class="blockcellnopadding" colspan="2">
<table cellpadding="4" cellspacing="0" width="100%"  style="border-bottom:solid 1px  #bfbfbf;">
        <tr>
            <td class="columntitle center">&nbsp;</td>
            <td class="columntitle center">IP Address</td>
            <td class="columntitle center">NAS IP Address</td>
            <td class="columntitle center">Line Port</td>
            <td class="columntitle center">Telephone Number</td>
        </tr>
<?php
        foreach ($info->sessions->session as $session) {
            $ip = $session->{'ip-address'};
            $nas = $session->{'nas-ip-address'};
            $port = $session->{'nas-port'};
            $phone = 'N/A';

            echo '<tr>',
          '<td class="blockcontentwhite sessionicon">',
          '<td class="blockcontentwhite center">' . ("$ip") . '</td>',
          '<td class="blockcontentwhite center">' . ("$nas") . '</td>',
          '<td class="blockcontentwhite center">' . ("$port") . '</td>',
          '<td class="blockcontentwhite center">' . ("$phone") . '</td>',

          '</tr>';
       };
?>
于 2013-03-23T09:14:12.270 に答える