在html / php中的单独表格行中显示目录中的文件名

时间:2019-05-15 14:28:01

标签: php css arrays foreach html-table

我正在处理如下所示的php代码,在该代码中,我想在php的单独表行中显示文件名。

$destination = 'outgoing_folder';    
$mp3_files = scandir($destination); /* Line #A */
print_r($mp3_files);                /* Line #B */

Line#B打印以下o / p:

Array ( [0] => . [1] => .. [2] => 36017P.mp3 [3] => 36031P.mp3 [4] => hello.mp3 )

我用来在表中显示内容的HTML / PHP代码是:

<table width="100%">
    <tr>
        <!-- This inline css will go inside addiional css -->    
        <th style="width=8%;" >House#</th>
        <th style="width=8%;">MP3</th>
        <th style="width=8%;" >Program Name</th>
        <th style="width=4%;">Title</th>
        <th style="width=8%;" >Description</th>
        <th style="width=8%;" >Program Name</th>
        <th style="width=4%;" >Title</th>
        <th style="width=8%;">Description</th>
    </tr>
<tr>
       <td style="width:8%;text-align:center;"><?php echo $mp4_files[2];?></td>
       <td style="width:8%;text-align:center;"><?php echo $mp3_files[2];?></td>             /* Line Z */
       <td style="width:8%;"><?php echo $path_program_en[0]->value; ?> </td>
       <td style="width:8%;"><?php echo $path_title_en[0]->value; ?></td>
       <td style="width:8%;"><?php echo $path_description_en[0]->value; ?></td>
       <td style="width:8%;"><?php echo $path_program_fr[0]->value; ?> </td>
       <td style="width:8%;"><?php echo $path_title_fr[0]->value; ?></td>
       <td style="width:8%;"><?php echo $path_description_fr[0]->value; ?></td>
</tr>

我已经在Line#Z的Line #A处使用php在单独的表格行中打印目录中的第二个文件名

问题陈述:

我想知道我需要在Line#Z(在HTML代码中显示)上添加哪些更改,以便它在其中打印所有文件名(36017P.mp3 36031P.mp3 hello.mp3) html中的单独行。

2 个答案:

答案 0 :(得分:2)

为此,您将需要使用foreach遍历数组中的每个项目并将其输出到单独的行中,例如:

    foreach ($mp3_files as $key => $value) { ?>
      <tr><td><?php echo $value; ?></td></tr>
     <?php
     }
?>

需要记住的是<tr>标签是表行,因此要使数据被行分隔,您每次都需要将它们输出到不同的<tr>标签中,也不要忘记在行内使用<td>标记以确保表将其识别为表数据。

答案 1 :(得分:1)

由于$mp3_files是一个数组,因此需要对其进行迭代。

为此,您可以使用forforeach语句。

如果您希望在同一TD上显示所有文件,但换行,则可以使用implode函数和<br>作为粘合剂(应该可以解决问题):

<?php echo implode('<br>', $mp3_files); ?>

或使用foreach将其显示为列表:

<ul>
    <?php foreach($mp3_files as $file) : ?>
    <li><?php echo $file; ?></li>
    <?php endforeach; ?>
</ul>

如果您想在新的TR上显示EACH文件,则必须使用forforeach(如@Declan所示):

<?php foreach($mp3_files as $file) : ?>
<tr>
    <!-- other tds here -->
    <td><?php echo $file; ?></td>
    <!-- other tds here -->
</tr>
<?php endforeach; ?> 

但是,如果我正确理解了您的代码,这种方法将迫使您在每个新行(tr)上重复所有其他tds数据。