0

这是代码

$directory = 'games';

if ($handle = opendir($directory.'/')) {
    while ($cat = readdir($handle)) {
        if ($cat!='.'&&$cat!='..') {
            echo '<td><a href="'.$directory.'/'.$cat.'" style="text-decoration:none">'.str_replace('_', ' ', $cat).'</a></td>';
        }
    }
}

我需要将 while 循环更改为这样,以便在每 3 次重复<tr>的开始<td>和结束时添加!</td>

4

4 回答 4

0

您可以使用模数:

$directory = 'games';

if ($handle = opendir($directory.'/')) {
    $i=0;
    while ($cat = readdir($handle)) {        
    if ($cat!='.'&&$cat!='..') {
        if($i==0){echo '<tr>';}//first
        if($i>0 && $i%3==0){echo '</td><tr>';}//modulus - every third
            $i++;
        echo '<td><a href="'.$directory.'/'.$cat.'" style="text-decoration:none">'.str_replace('_', ' ', $cat).'</a></td>';
        }
    }
    if($i>0){echo '</tr>';}//last
}
于 2013-07-04T20:57:06.217 回答
0

在 while 循环开始之前声明一个值为 0 的变量,在 if 语句之后为变量检查 0 执行 mod 3 并且您可以使用添加的标签来回显。

if ($handle = opendir($directory.'/')) {
$temp=0;
while ($cat = readdir($handle)) {
if ($cat!='.'&&$cat!='..') {
if($temp % 3 == 0)
echo '<tr><td><a href="'.$directory.'/'.$cat.'" style="text-decoration:none">'.str_replace('_', ' ', $cat).'</a></td></tr>';
else echo '<td><a href="'.$directory.'/'.$cat.'" style="text-decoration:none">'.str_replace('_', ' ', $cat).'</a></td>';
$temp++;
}
}
}
于 2013-07-04T20:51:21.923 回答
0
$directory = 'games';
$row=0;
if ($handle = opendir($directory.'/')) {
    while ($cat = readdir($handle)) {
        if ($cat!='.'&&$cat!='..') {
            if($row==0) echo '<tr>';
            echo '<td><a href="'.$directory.'/'.$cat.'" style="text-    decoration:none">'.str_replace('_', ' ', $cat).'</a></td>';
            if($row==2) {
              echo '</tr>';
              $row = -1;
            }
            $row++;
        }
    }
}
于 2013-07-04T20:52:28.917 回答
0

为了达到标准并遵循正确的加价做法,我们必须指定和

<table>

标签应该在while循环之前和之后指定。例如

$directory = 'games';
$row=0;
if ($handle = opendir($directory.'/')) {
    echo '<table>';    
    while ($cat = readdir($handle)) {
        if ($cat!='.'&&$cat!='..') {
            if($row==0) echo '<tr>';
            echo '<td><a href="'.$directory.'/'.$cat.'" style="text-    decoration:none">'.str_replace('_', ' ', $cat).'</a></td>';
            if($row==2) {
              echo '</tr>';
              $row = -1;
            }
            $row++;
        }
    }
    echo '</table>';
}
于 2013-07-04T21:43:34.287 回答