Отображать имена файлов из каталога в отдельных строках таблицы в html/php

Я работаю над php-кодом, как показано ниже, в котором я хочу отображать имена файлов в отдельных строках таблицы в php.

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

Строка #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>

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

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

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

Вам нужен foreach, чтобы просмотреть этот массив и вывести каждый элемент массива.

Dave 15.05.2019 16:45

Я пробовал что-то вроде этого <?php foreach (array_diff(scandir($audio_mp3), array('..', '.')) as $file) : ?> <td style = "width:8%;text-align:center;"><?php echo $file;?></td> <?php endforeach ?>, но он не печатается в отдельных строках..

flash 15.05.2019 16:46
<td> — это столбец в строке <tr>. Вам нужно будет начать новую строку перед выводом элементов массива.
Dave 15.05.2019 16:54
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
809
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

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

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

Ответ принят как подходящий

Поскольку $mp3_files — это массив, вам нужно выполнить итерацию по нему.

Для этого вы можете использовать статусы для или для каждого.

Если вы хотите отобразить ВСЕ файлы в одном и том же TD, но в новой строке, вы можете использовать функцию взрываться с <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).

Я изменил свой вопрос. Если я хочу распечатать mp4_files в отдельных строках. Стоит ли мне делать что-то подобное <?php foreach($mp3_files, $mp4_files as $file, $file2) : ?> <tr> <!-- other tds here --> <td><?php echo $file; ?></td> <td><?php echo $file2; ?></td> <!-- other tds here --> </tr> <?php endforeach; ?>

flash 15.05.2019 17:41

Есть и другие элементы td, которые имеют несколько значений. В таком случае я не уверен, как это будет работать.

flash 15.05.2019 17:43

Я применил вашу логику, и она отлично работает. Спасибо за это.

flash 15.05.2019 17:52

Ты поблизости ?

flash 15.05.2019 18:30

Извините, я был офлайн. Я рад, что смог тебе помочь.

Dexter0015 15.05.2019 21:05

У меня есть еще один вопрос. Это не похоже. Мне интересно, можете ли вы взглянуть.

flash 03.06.2019 19:14

Другие вопросы по теме