【问题标题】:Convert a string CSV to HTML table in PHP在 PHP 中将字符串 CSV 转换为 HTML 表
【发布时间】:2016-07-15 02:33:03
【问题描述】:

我正在使用 PHP 和 HTML 制作一个小型金融市场小部件。我想将以下 CSV 字符串转换为 HTML 表格

result=1&size=200 EURUSD;1.11143;1.11143;1.11170;1.11025;1468549348 CADJPY;82.333;82.345;82.382;81.411;1468549348 EURGBP;0.81374;0.81386;0.83144;0.77313;1466801995 CADCHF;0.76110;0.76110;0.76120;0.75957;1468549347

我在一个名为 $result 的字符串中获取上述值。

如何显示为标准的 HTML 表格,例如:

符号 |投标 |问 |高 |低 |时间
欧元美元 | 1.11143 | 1.11143 | 1.11170 | 1.11025 | 1468549348

等等..

编辑:

试过

$csvData = $result;
$lines = explode("\n", $csvData);
 echo "<table class='display' id='example'><thead >"; 
 echo "<tr class = 'even_gradeC'>
    <th class='history'><strong>Symbol</strong></th>
    <th class='history'><strong>Bid</strong></th>
    <th class='history'><strong>Ask</strong></th>
     <th class='history'><strong>High</strong></th>
    <th class='history'><strong>Low</strong></th>
    <th class='history'><strong>Time</strong></th>

    </tr>";
    echo "</thead>";    
 foreach ($lines as $line) 
{
$data = explode(';', $line );
if(count($data)==6) 
{
echo"<tr class='even_gradeC'>";
foreach($data as $row => $value)
{
if($row<>6)
//{
if ($row==1)
{
echo "<td align='right'>";
echo $value;
echo "</td>";

}
elseif ($row==2)
{
echo "<td>";
echo $value;
echo "</td>";
}
elseif ($row==3)
{
echo "<td>";
echo $value; 
echo "</td>";
}
elseif ($row==4)
{
echo "<td>";
echo $value; 
echo "</td>";
}

elseif ($row==5)
{
echo "<td>";
echo $value; 
echo "</td>";
}
elseif ($row==6)
{
echo "<td>";
echo $value; 
echo "</td>";

}
else
{
echo "<td>";
echo $value;
echo "</td>";
}
} 
echo "<td>";
echo $value;
echo "</td>"; 
} 
}
echo "</tr>";
echo "</table>";

【问题讨论】:

  • 尝试一下并回复我们。堆栈溢出不是在这里为您完成工作的。
  • 用空格分割字符串,然后使用 ; 进行“爆炸”作为分隔符
  • 提示:explode()
  • 已经摆好桌子了。但是第一列显示结果=1&size=0 EURUSD。如何跳过第一个?
  • result=1&size=0 EURUSD 是 csv 的第一部分,因此它显示为第一列名称。请分享您尝试轻松调试的代码

标签: php html csv html-table


【解决方案1】:
$csvLines = explode("\n", $csvData); // or use space as delimiter

echo "<table><tbody>";

foreach ($csvLines as $line) {
    $lineData = explode(";", $line);

    if (6 != count($lineData)) {
        continue;
    }

    echo "<tr>";

    foreach ($lineData as $value) {
        echo "<td>" . $value . "</td>";
    }

    echo "</tr>";
}

echo "</tbody></table>";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 2013-08-14
    • 1970-01-01
    相关资源
    最近更新 更多