下面是我的字符串$ output,它来自和fsockopen和fread。唯一可以改变的就是恐惧,但在此之前别无其他。
14336.0 K9IA 13-Aug-2012 1750Z washington, dc (throb)
14336.0 K9IA 13-Aug-2012 1750Z fond du lac, wi (ssb)
14336.0 K9IA 13-Aug-2012 1752Z calumet, wi (ssb)
14336.0 K9IA 13-Aug-2012 1752Z carsen city, nv (ssb)
14336.0 K9IA 13-Aug-2012 1753Z carson city, nv (ssb)
14336.0 K9IA 13-Aug-2012 1754Z dane, wi (ssb)
14336.0 K9IA 13-Aug-2012 1759Z dane, wi (cw)
14336.0 KA2TED 13-Aug-2012 1759Z Carson City,NV(SSB)
14336.0 K9IA 13-Aug-2012 1800Z dane, wi (psk)
14336.0 K9IA 13-Aug-2012 1801Z bristol, va (psk)
14336.0 K9IA 13-Aug-2012 1815Z caeson city, nv (rtty)
14336.0 K9IA 13-Aug-2012 1816Z carson city, nv (rtty)
然后我接受字符串$ output并执行以下操作:
$output = str_replace("\n", "<br>", $output);
这会在结束括号后插入换行符并形成12行。到目前为止完美无缺。
我需要做的是立即获取$ output并能够在格式良好的表格中显示它。
我的意思是......
每个都是一个字段,就像在数组中一样....我想使用相同的格式,就好像它是一个MySql数据一样:
while($row = mysqli_fetch_array($result))
echo $row['Freq'];
echo "</td><td>";
echo $row['Call'];
echo "</td><td>";
echo $row['Date'];
echo "</td><td>";
echo $row['Time'];
echo "</td><td>";
echo $row['CTYState'];
echo "</td><td>";
echo $row['Mode'];
echo "</td><td>";
每个要分开的原因是我需要在给定字段中预先形成其他功能,例如链接等。我搜索过,尝试过,感到沮丧,并且知道必须有办法。我在VB和PHP中一遍又一遍地使用MySQL或odbc_connect,但从不使用字符串。
... UPDATE
我使用Ed Manot发布的方法,因为我可以使用字段链接,不同颜色等........
BUT ..........
它确实不太好用。我只能看到前两个字段。我能看到的字段只是Field 1和Field 3。使用您的原始代码我只能看到1 14336.0而没有别的。有什么想法吗?
echo "<table border='1'>";
echo"<tr><th>FieldA</th><th>FiledB</th><th>FiledC</th><th>FieldD</th><th>FieldE</th> <th>FiledF</th><th>FiledG</th></tr>\n";
//split the output into lines based on the line break character
$lines = explode("\n", $output);
foreach($lines as $line) {
//split the line into fields based on the space character
$fields = explode(" ", $line);
echo "<td>" .$fields[0]. "</td>";
echo "<td>" .$fields[1]. "</td>";
echo "<td>" .$fields[2]. "</td>";
echo "<td>" .$fields[3]. "</td>";
echo "<td>" .$fields[4]. "</td>";
echo "<td>" .$fields[5]. "</td>";
echo "<td>" .$fields[6]. "</td>";
echo "<td>" .$fields[7]. "</td>";
}
echo '</table>';
答案 0 :(得分:0)
您需要将数据拆分为数组:
//split the output into lines based on the line break character
$lines = explode("\n", $output);
foreach($lines as $line) {
//split the line into fields based on the space character
$fields = explode(" ", $line);
echo "<td>" . $fields[0] . "</td>";
echo "<td>" . $fields[1] . "</td>";
echo "<td>" . $fields[2] . "</td>";
// etc...
}
答案 1 :(得分:0)
不要更换回车(如果确实在那里?)并做一些事情(脏),如:
$lines = explode("\n", $output);
echo '<table>';
foreach($lines as $line) {
echo '<tr>';
$parts = explode(" ", $line);
echo '<td>'.implode("</td><td>", $parts).'</td>';
echo '</tr>';
}
echo '</table>';
:d
答案 2 :(得分:0)
我弄明白了这个问题。而不是空间,使用胡萝卜。他们出现了空间,但没有。使用Regex将^替换为“”。现在工作。