从第一个循环条目中删除<hr />

时间:2011-12-16 10:51:17

标签: php html arrays foreach

我有这个简单的循环:

foreach ($links as $link)
{   
    echo '<div>';
        echo '<table>';

        echo '<tr><td class="fullwidth"><a class="preview_img" href="' . $link . '"><img src="' . $link . '" title="Click to enlarge" width="300" class="thumb" /></a></td></tr>';

        echo '<tr><td><span class="default">Direct:</span>&nbsp;';
        echo '<input type="text" readonly="readonly" class="link-area" onmouseover="this.select();" value="' . $link . '" />'; 
        echo '</td></tr>';

        echo '<hr /><br>';
        echo '</table>';
        echo '<br>';
    echo '</div>';
}
?>

<HR>以非常奇怪的方式出现。水平线也出现在循环的开头,这是不应该发生的事情,因为我需要ALL除了第一个循环条目以包含<HR>。我试图尽可能清楚,希望我是。如果有任何方法可以帮助我,请这样做:)。

由于

5 个答案:

答案 0 :(得分:2)

你必须做

     $flag = false;
     foreach ($links as $link)
    {   
        if ($flag)
             echo '<div class='line'>';
        else
            echo '<div>';
            echo '<table>';
           echo '<tr>';
          echo '<td class="fullwidth"><a class="preview_img" href="' . $link . '"><img src="' . $link . '" title="Click to enlarge" width="300" class="thumb" /></a></td>'
  echo '</tr>';
           echo '<tr>';
             echo '<td><span class="default">Direct:</span>&nbsp;';
             echo '<input type="text" readonly="readonly" class="link-area" onmouseover="this.select();" value="' . $link . '" />'; 
            echo '</td></tr>';
            echo '</table>';
        echo '</div>';
      $flag=true;
    }
    ?>

使用class =&#39; line&#39;你可以管理div之间的边界和距离 不使用hr和br

答案 1 :(得分:2)

<HR>标记位置错误。如果表格中有<td>标记以外的任何内容,它将显示在表格的顶部。

如果您想获得<HR>效果,请为div设置底部边框,或将<HR>标记放在桌子后面。

答案 2 :(得分:0)

<pre>
foreach ($links as $link)
{   
    echo '<div>';
        echo '<table>';

        echo '<tr><td class="fullwidth"><a class="preview_img" href="' . $link . '"><img src="' . $link . '" title="Click to enlarge" width="300" class="thumb" /></a></td></tr>';

        echo '<tr><td><span class="default">Direct:</span> ';
        echo '<input type="text" readonly="readonly" class="link-area" onmouseover="this.select();" value="' . $link . '" />'; 
        echo '</td></tr>';


        echo '</table>';
echo '<hr /><br>';
        echo '<br>';
    echo '</div>';
}

</pre>

答案 3 :(得分:0)

我会使用一个计数器,因为那样你就可以将计数器用于其他事情以及测试以查看我们的迭代。例如,每5次迭代,为间隔符或其他任何内容添加一个空行。

$counter = 0;          // Set the counter outside the foreach
foreach ($links as $link)
{   
    echo '<div>';
    echo '<table>';
    echo '<tr><td class="fullwidth"><a class="preview_img" href="' . $link . '"><img src="' . $link . '" title="Click to enlarge" width="300" class="thumb" /></a></td></tr>';
    echo '<tr><td><span class="default">Direct:</span>&nbsp;';
    echo '<input type="text" readonly="readonly" class="link-area" onmouseover="this.select();" value="' . $link . '" />'; 
    echo '</td></tr>';

    if($counter == 0) // You can use this counter to test for other things
    {
        echo '<hr /><br>';
    }

    echo '</table>';
    echo '<br>';
    echo '</div>';

    $counter++;       // Increment the counter by one.
}
?>

答案 4 :(得分:-1)

$showHR = false;
foreach ($links as $link)
{   
    echo '<div>';
        echo '<table>';

        echo '<tr><td class="fullwidth"><a class="preview_img" href="' . $link . '"><img src="' . $link . '" title="Click to enlarge" width="300" class="thumb" /></a></td></tr>';

        echo '<tr><td><span class="default">Direct:</span>&nbsp;';
        echo '<input type="text" readonly="readonly" class="link-area" onmouseover="this.select();" value="' . $link . '" />'; 
        echo '</td></tr>';
        if(!$showHR){

         $showHR = true;
        } else {
         echo '<hr /><br>';
         }

        echo '</table>';
        echo '<br>';
    echo '</div>';
}
?>

这将仅隐藏hr行一次。