代码之家  ›  专栏  ›  技术社区  ›  flash

如何在php中将目录中的文件名显示在单独的表行中?

  •  0
  • flash  · 技术社区  · 6 年前

    我正在开发一个php代码,如下所示,我希望在php中将文件名显示在单独的表行中。

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

    B行打印以下订单:

    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>
    

    我用Z行的A行打印 目录中的第二个文件名 在php中的单独表行中。

    问题陈述:

    我想知道我需要在Z行(在HTML代码中)添加什么更改,以便它打印所有文件名 (36017P.mp36031p.mp3 hello.mp3) 在html中的单独行中。

    0 回复  |  直到 6 年前
        1
  •  1
  •   Dexter0015    6 年前

    作为 $mp3_files 是一个数组,需要对其进行迭代。

    为此,您可以使用 for foreach 支柱。

    如果您希望在同一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上显示每个文件,则必须使用 for foreach公司 (如@Declan所示):

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

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

        2
  •  2
  •   Declan    6 年前

    为此,需要使用for each循环遍历数组中的每个项,并将它们输出到单独的行中,例如:

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

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

    推荐文章