在PHP中多次包含相同的文件

时间:2014-03-20 10:57:34

标签: php include

基本上我有一个特定成员的列表,我用他们的会员ID打电话,然后在每个成员身上显示td ..

所以我有这样的表

    <table id="sortable" class="tablesorter" width="100%">
  <thead>
    <tr>
      <th class="header"><strong>Game Username</strong></th>
      <th class="header"><strong>Rank</strong></th>
      <th class="header"><strong>Game Played</strong></th>
      <th class="header"><strong>Playing On</strong></th>
      <th class="header"><strong>Age</strong></th>
      <th class="header"><strong>Time On</strong></th>
      <th class="header"><strong>Location</strong></th>
    </tr>
  </thead>
  <tbody>
    <?php include ("users.php"); ?>
  </tbody>

而且users.php文件看起来像这样,但现在超过50行相同的代码,只有$ id = number更改..

<tr><td class="username"><a href="<?php $id='1'; include ("fields.php"); ?>
<tr><td class="username"><a href="<?php $id='2'; include ("fields.php"); ?>
<tr><td class="username"><a href="<?php $id='3'; include ("fields.php"); ?>
<tr><td class="username"><a href="<?php $id='4'; include ("fields.php"); ?>
<tr><td class="username"><a href="<?php $id='5'; include ("fields.php"); ?>

fields.php文件是表行等的其余部分,从下面的代码开始,关闭此td。

<?php echo $domain; $member_id = $id; $user_info = get_userdata($id);echo $user_info-> user_login.""; ?>"><?php echo xprofile_get_field_data( "$field_gamename" , $member_id); ?></a>
</td>

我试图避免在users.php文件中包含fields.php文件超过50次。有人知道最有效的方法吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

是的, loop

for ($i = 1; $i <= 50; $i++) {
    //Do stuff with $i.
}

答案 1 :(得分:1)

<?php
for($i = 0; $i <= 50; $i++) {
?>
<tr>
    <td class="username">
        <?php $href = $domain . $user_info->get_userdata($i) . $user_info->user_login;?>
        <a href="<?php echo $href;?>"><?php echo xprofile_get_field_data( "$field_gamename" , $i); ?></a>
    </td>
</tr>
<?php
}
?>

答案 2 :(得分:1)

这应该有效:

<?php for ($i=0; $i<50; $i++): ?>
<tr><td class="username"><a href="<?php $id=$i; include ("fields.php"); ?>
<?php endfor; ?>

另一方面,您应该重新考虑代码,这样您就不需要在每个循环中包含该文件,可能是通过将代码内联或(更好)通过创建一个函数来执行任何操作需要做,像这样:

<?php for ($i=0; $i<50; $i++): ?>
<tr><td class="username"><a href="<?php do_some_stuff($i); ?>
<?php endfor; ?>

编辑:

由于您希望这适用于已定义的ID列表,因此您应该创建一个包含该列表的数组,并使用foreach()语句循环它,如下所示:

<?php 
$IdArray = array(1, 2, 25, 38);
foreach ($IdArray as $id): ?>
<tr><td class="username"><a href="<?php include ("fields.php"); ?>
<?php endforeach; ?>

请注意,我删除了&#34; $ id = $ i&#34;,因为我直接在foreach语句中提供了$ id变量! ;)

顺便说一句,你应该在&#34; endforeach&#34;之前关闭tr,td和一个标签,好吗?

祝你好运!