我有随机id生成器,可以有1到6个类别,包含多个条目 - 参见示例
$ranGen = "IDENTIFIER | c07-8b93-49e4-991b-8213ea2b1| e8085-ded7-43ab-85127fe23f90bc|" ;
$ranGen = "IDENTIFIER | MULTITENANT | c0407-8b93-49e4-991b-8213ea1b1| y | e808c5-ded7-43ab-858d-127f90bc| y|" ;
$ranGen = "IDENTIFIER | MULTITENANT | REGISTERID | c0347-8b93-49e4-991b-8213921b1| y | 1700011| e87fc5-ded7-43ab-858d-1273f90bc| y | 1700012|" ;
我使用数组创建了一个html表,并使用explo来获取表行和表数据。
这是我的表格代码
<?php
echo '<table>';
$lines = explode("\n", $ranGen);
foreach ($lines as $line) {
$pieces = explode("|", $line);
if(trim($line) !=="") {
echo '<tr>' . "\n";
foreach ($pieces as $piece) {
echo '<td>' . trim($piece) . '</td>' . "\n";
}
}
echo '</tr>' . "\n";
}
echo "</table>";
?>
我想要完成的是制作专栏&#34; REGISTERID&#34;表格内的所有数据都是超链接(href =&#34; url&#34;&gt;注册ID 1700011)?当我不知道我是否会将寄存器ID作为列返回时,可以这样做吗?
答案 0 :(得分:0)
这样的事情会这样做 - 您需要根据第一行中的列名称确定REGISTERID列是否存在,然后在后续行中,当您到达该索引时,将项目包装在合适的超链接中
这未经过测试,但希望如果它不能正常工作,至少你会得到一般的想法。我也对它进行了一些修改,以便生成更好的表格HTML。
<?php
$strHTML = '<table>';
$rows = explode("\n", $ranGen);
$regColIndex = null; //this will hold the index of the registerID column, if any
//loop through the rows
for ($rowCount = 0; $rowCount < count($rows); $rowCount++)
{
if (trim($rows[$rowCount]) != "")
{
$columns = explode("|", $rows[$rowCount]);
if ($rowCount == 0) $strHTML .= "<thead>";
if ($rowCount == 1) $strHTML .= "</thead><tbody>";
$strHTML = "<tr>";
//loop through the columns
for ($colCount = 0; $colCount < count($columns); $colCount++)
{
$isRegCol = false; //this will hold whether current column is the REGISTERID column
if ($rowCount == 0)
{
//first row contains headings, try and detect the REGISTERID column
if (trim($columns[$colCount]) == "REGISTERID") $regColIndex = $rowCount;
$strHTML .= "<th>";
}
else
{
//all other rows contain data, check if it's the REGISTERID column
if ($colCount == $regColIndex) $isRegCol = true;
$strHTML .= "<td>";
}
//now display the content
if ($isRegCol == true) $strHTML .= "<a href='http://www.example.com'>".trim($line[$lineCount])."</a>";
else $strHTML .= trim($line[$lineCount]);
if ($rowCount == 0) $strHTML .= "</th>";
else $strHTML .= "</td>";
}
$strHTML .= "</tr>";
}
}
$strHTML .= "</tbody></table>";
echo $strHTML;
?>