如何将 PHP shell_exec 结果显示为 html table?
How can I display PHP shell_exec results into a html table?
我有一个 PHP shell_exec 命令,它为每个结果输出 5 行数据,如果 shell_exec
有 1 个结果,它将输出 5 行,如下所示:
john
richmond
27
london
dogs
该命令可能有超过 1 个结果,这里是 3 个结果的示例:
john
richmond
27
london
dogs
dave
archibold
34
new york
cats
harry
harris
33
dublin
fish
如您所见,每个结果有 5 行,名称、姓氏、年龄、城市和宠物。
我希望用结果创建一个 html table,但是由于每次结果的数量可能不同,并且需要将它们分为 5 个,我不确定如何实现这一点。
这是所需的 HTML 输出:
| Name | Surname | Age | City | Pet |
--------------------------------------------------
| john | richmond | 27 | london | dogs cat |
| dave | archibold | 34 | newyork | cats cow |
| harry | harris | 33 | dublin | fish horse |
根据我自己的研究,我认为我可能必须使用 php explode
并创建一个数组,我想出了以下内容,但是不确定如何实现 foreach 以及其他什么我需要让它工作:
<div class="table-responsive">
<?php
$str = shell_exec( "shell command" );
$arr = explode(PHP_EOL, $str);
$arr = array_chunk($arr,5);
foreach *
?>
<table>
<thead>
<tr>
<th>Name</th>
<th>Surname</th>
<th>Age</th>
<th>City</th>
<th>Pet</th>
</tr>
</thead>
<tbody>
<?php foreach(*) { ?>
<tr class="1">
<td class="1">
<i class="cc <?php echo $name;?></i>
</td>
<td class="1">
<i class="cc <?php echo $surname;?></i>
</td>
<td class="1">
<i class="cc <?php echo $age;?></i>
</td>
<td class="1">
<i class="cc <?php echo $city;?></i>
</td>
<td class="1">
<i class="cc <?php echo $pet;?></i>
</td>
</tr>
</tbody>
</table>
</div>
使用 array_chunk
,你确实已经拥有了大部分你需要的东西,你只需要 foreach 你的结果数组,并使用一点点 list
魔法来分配你的变量。
简而言之,list
正在做的是将数组元素一个一个地分配给您将在 list
语句中定义的变量。
<div class="table-responsive">
<?php
$array = array_chunk(
explode(
PHP_EOL,
shell_exec( "shell command" )
),
5
);
?>
<table>
<thead>
<tr>
<th>Name</th>
<th>Surname</th>
<th>Age</th>
<th>City</th>
<th>Pet</th>
</tr>
</thead>
<tbody>
<?php foreach($array as $element) { ?>
<?php list($name, $surname, $age, $city, $pet) = $element; ?>
<tr class="1">
<td class="1">
<i class="cc"><?php echo $name ?></i>
</td>
<td class="1">
<i class="cc"><?php echo $surname ?></i>
</td>
<td class="1">
<i class="cc"><?php echo $age ?></i>
</td>
<td class="1">
<i class="cc"><?php echo $city ?></i>
</td>
<td class="1">
<i class="cc"><?php echo $pet ?></i>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
我有一个 PHP shell_exec 命令,它为每个结果输出 5 行数据,如果 shell_exec
有 1 个结果,它将输出 5 行,如下所示:
john
richmond
27
london
dogs
该命令可能有超过 1 个结果,这里是 3 个结果的示例:
john
richmond
27
london
dogs
dave
archibold
34
new york
cats
harry
harris
33
dublin
fish
如您所见,每个结果有 5 行,名称、姓氏、年龄、城市和宠物。 我希望用结果创建一个 html table,但是由于每次结果的数量可能不同,并且需要将它们分为 5 个,我不确定如何实现这一点。 这是所需的 HTML 输出:
| Name | Surname | Age | City | Pet |
--------------------------------------------------
| john | richmond | 27 | london | dogs cat |
| dave | archibold | 34 | newyork | cats cow |
| harry | harris | 33 | dublin | fish horse |
根据我自己的研究,我认为我可能必须使用 php explode
并创建一个数组,我想出了以下内容,但是不确定如何实现 foreach 以及其他什么我需要让它工作:
<div class="table-responsive">
<?php
$str = shell_exec( "shell command" );
$arr = explode(PHP_EOL, $str);
$arr = array_chunk($arr,5);
foreach *
?>
<table>
<thead>
<tr>
<th>Name</th>
<th>Surname</th>
<th>Age</th>
<th>City</th>
<th>Pet</th>
</tr>
</thead>
<tbody>
<?php foreach(*) { ?>
<tr class="1">
<td class="1">
<i class="cc <?php echo $name;?></i>
</td>
<td class="1">
<i class="cc <?php echo $surname;?></i>
</td>
<td class="1">
<i class="cc <?php echo $age;?></i>
</td>
<td class="1">
<i class="cc <?php echo $city;?></i>
</td>
<td class="1">
<i class="cc <?php echo $pet;?></i>
</td>
</tr>
</tbody>
</table>
</div>
使用 array_chunk
,你确实已经拥有了大部分你需要的东西,你只需要 foreach 你的结果数组,并使用一点点 list
魔法来分配你的变量。
简而言之,list
正在做的是将数组元素一个一个地分配给您将在 list
语句中定义的变量。
<div class="table-responsive">
<?php
$array = array_chunk(
explode(
PHP_EOL,
shell_exec( "shell command" )
),
5
);
?>
<table>
<thead>
<tr>
<th>Name</th>
<th>Surname</th>
<th>Age</th>
<th>City</th>
<th>Pet</th>
</tr>
</thead>
<tbody>
<?php foreach($array as $element) { ?>
<?php list($name, $surname, $age, $city, $pet) = $element; ?>
<tr class="1">
<td class="1">
<i class="cc"><?php echo $name ?></i>
</td>
<td class="1">
<i class="cc"><?php echo $surname ?></i>
</td>
<td class="1">
<i class="cc"><?php echo $age ?></i>
</td>
<td class="1">
<i class="cc"><?php echo $city ?></i>
</td>
<td class="1">
<i class="cc"><?php echo $pet ?></i>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>