отображать имена файлов из каталога в отдельных строках таблицы в html / php - PullRequest
0 голосов
/ 15 мая 2019

Я работаю над кодом 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>

Я использовал строку #A в строке # Z для печати 2-го имени файла из каталога в отдельных строках таблицы в php.

Постановка задачи:

Мне интересно, какие изменения мне нужно добавить в строке # Z (присутствует в HTML-коде), чтобы она печатала все имена файлов (36017P.mp3 36031P.mp3 hello.mp3) в отдельности строки в html.

Ответы [ 2 ]

2 голосов
/ 15 мая 2019

Для этого вам нужно будет перебрать каждый элемент в массиве, используя foreach, и вывести их в отдельные строки, например:

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

Следует иметь в виду, что теги <tr>являются строками таблицы, поэтому для разделения данных на строки необходимо каждый раз выводить их в разные теги <tr>, также не забывайте использовать теги <td> внутри строк, чтобы таблица распознала их как таблицуданные.

1 голос
/ 15 мая 2019

Поскольку $mp3_files - это массив, вам нужно итерировать его.

Для этого вы можете использовать для или 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; ?> 

Но если я правильно понимаю ваш код, этот подход заставит вас повторять все остальные данные tds в каждой новой строке (tr).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...