我的 shell 脚本的输出看起来像这样
RUN TRT FLO MAT TOPWT HARWT RAIN TIRR CET PESW TNUP TNLF TSON TSOC
dap dap kg/ha kg/ha mm mm mm mm kg/ha kg/ha kg/ha t/ha
1 WH 1 217 250 7615 2848 600 0 422 141 76 54 7841 79
2 WH 2 217 250 10018 4150 600 0 431 139 105 78 7841 79
3 WH 3 217 250 11087 4416 600 0 430 138 131 163 7841 79
4 WH 4 217 250 5895 1737 600 213 446 144 52 16 7838 79
5 WH 5 217 250 7787 2338 600 213 446 143 69 18 7838 79
6 WH 6 217 250 9610 3519 600 213 450 139 94 46 7838 79
我正在尝试将这些内容加载到网页上的表中。
注意:我使用了explode()
但无法找到将数组中的值获取到表中的方法。"如果我的方法错误,请纠正我"。
我的代码:
<?php
$output = shell_exec("cd DSSAT46; ./dscsm046 CSCER046 A KSAS8101.WHX 2>&1");
$arr = explode(" ",$output);
print_r($arr);
echo "<table><tr>";
foreach ($output as $row)
{
echo '<tr>';
echo '<td>' . $row['RUN'] . '</td>';
echo '<td>' . $row['TRT'] . '</td>';
echo '<td>' . $row['FLO dap'] . '</td>';
echo '</tr>';
}
?>
如果你想使用explode()
你需要分两步完成。在我的回答中,我假设:
- 输出的前两行包含数据的标题,因此不会更改。
n
作为行分隔符,t
(制表符(作为列分隔符。
您可以尝试以下代码:
<?php
// assuming $output contains the output you got from shell
$lines = explode("n", $output);
// starting from 2 to ignore the title
echo '<table>';
for ($i = 2; $i < sizeof($lines); $i++) {
echo '<tr>';
$columns = explode("t", $lines[$i]);
foreach ($columns as $data) {
echo '<td>'.$data.'</td>';
}
echo '</tr>';
}
echo '</table>';