如何使用PHP将现有HTML表拆分为4个大小相等的表?
我正在开发的一个网站已经有大约140个HTML文件,每个文件包含一个不同的HTML表。每个表有10到大约400行,共2列。这是不符合标准的旧代码,目前我正试图用这些旧代码勉强应付 下面是一个例子:如何使用PHP将现有HTML表拆分为4个大小相等的表?,php,html-table,Php,Html Table,我正在开发的一个网站已经有大约140个HTML文件,每个文件包含一个不同的HTML表。每个表有10到大约400行,共2列。这是不符合标准的旧代码,目前我正试图用这些旧代码勉强应付 下面是一个例子: <TABLE BORDER=0> <TR><TD><FONT SIZE=1>Row 1 Col 1</TD><TD WIDTH+20><FONT SIZE=1>Row 1 Col 2</TD><T
<TABLE BORDER=0>
<TR><TD><FONT SIZE=1>Row 1 Col 1</TD><TD WIDTH+20><FONT SIZE=1>Row 1 Col 2</TD><TR>
<TR><TD><FONT SIZE=1>Row 2 Col 1</TD><TD WIDTH+20><FONT SIZE=1>Row 2 Col 2</TD><TR>
<TR><TD><FONT SIZE=1>Row 3 Col 1</TD><TD WIDTH+20><FONT SIZE=1>Row 3 Col 2</TD><TR>
...
</TABLE>
第1列第1列第2列第1列
第2列第1列第2列第2列
第3列第1列第3列第2列
...
我试图在PHP中找到一种方法来计算表中有多少行,然后将这些行拆分为4个div。如果我们有一张100行的桌子。前25行将进入该分区:
<div class="span3"><table>{first 25 rows go here}</table></div>
{前25行转到这里}
等等
<div class="span3"><table>{next 25 rows go here}</table></div>
<div class="span3"><table>{next 25 rows go here}</table></div>
<div class="span3"><table>{next 25 rows go here}</table></div>
{接下来的25行转到这里}
{接下来的25行转到这里}
{接下来的25行转到这里}
直到最后我们得到类似的东西:
<div class="row-fluid">
<div class="span3"><table>{first 25% rows go here}</table></div>
<div class="span3"><table>{next 25% rows go here}</table></div>
<div class="span3"><table>{next 25% rows go here}</table></div>
<div class="span3"><table>{next 25% rows go here}</table></div>
</div>
{前25%的行位于此处}
{接下来25%的行转到此处}
{接下来25%的行转到此处}
{接下来25%的行转到此处}
所有这些都需要在不实际编辑现有表中的代码的情况下完成。有人知道我会如何使用PHP吗?试试这个链接
$data = "<TABLE BORDER=0>
<TR><TD><FONT SIZE=1>Row 1 Col 1</TD><TD WIDTH+20><FONT SIZE=1>Row 1 Col 2</TD><TR>
<TR><TD><FONT SIZE=1>Row 2 Col 1</TD><TD WIDTH+20><FONT SIZE=1>Row 2 Col 2</TD><TR>
<TR><TD><FONT SIZE=1>Row 3 Col 1</TD><TD WIDTH+20><FONT SIZE=1>Row 3 Col 2</TD><TR>
...
</TABLE>";
$data = array_shift($data); // first array (table)
$rows = explode("<TR>",$data); // you will loose the <TR> so you will need to add the <TR> back on to the begining
$numrows = count($rows);
$data=”
第1列第1列第2列第1列
第2列第1列第2列第2列
第3列第1列第3列第2列
...
";
$data=数组移位($data);//第一个数组(表)
$rows=分解(“,$data);//您将松开,因此需要在开始时添加背面
$numrows=计数($rows);
我会使用DomDocument模型,如下所示:
$dom = new domDocument;
@$dom->loadHTML($html);
$rows = $dom->getElementsByTagName('tr');
谢谢大家给我的提示。我就是这样回答这个问题的,沿着DomDocument的路线
<?php
$dom = new DOMDocument();
//load the html
$html = $dom->loadHTMLFile($path.$filename);
//discard white space
$dom->preserveWhiteSpace = false;
//the table by its tag name
$tables = $dom->getElementsByTagName('table');
//get all rows from the table
$rows = $tables->item(0)->getElementsByTagName('tr');
$numberofrows = $tables->item(0)->getElementsByTagName('tr')->length;
$numberincolumn = ceil($numberofrows / 4);
$counter = 0;
echo '<div class="row-fluid"><div class="span3"><table>';
// loop over the table rows
foreach ($rows as $row)
{
if ($counter > 0 && $counter % $numberincolumn == 0){
echo '</table></div><div class="span3"><table>';
}
// get each column by tag name
$cols = $row->getElementsByTagName('td');
// echo the values
echo "<tr><td style='padding-left:10px;'>".$cols->item(0)->nodeValue.'</td>';
echo "<td>".$cols->item(1)->nodeValue.'</td></tr>';
$counter++;
}
echo "</table></div></div>";
*/
?>
到目前为止,除了问这个问题,您还做了什么?参考这些:@limovala-这家伙尝试了什么:?看看那些选票!如前所述,您应该使用一些PHP工具对其进行解析。我会通过jQuery收集你需要的东西[比处理解析器容易得多],将其序列化为JSON,然后用它做任何你想做的事情。@PédeLeão,我没有发现Mark21的研究成果,我已经指出了他可以用来解决问题的几个链接中的3个。很高兴你找到了答案。我刚才确实在做这件事,但我在这门课上的经验有限,所以我边学边学。