有这样一个表格
<table width="100%" border="1" cellspacing="1" cellpadding="1">
<tr>
<td> </td>
<td><table width="100%" border="1" cellspacing="1" cellpadding="1">
<tr>
<td> </td>
<td> </td>
</tr>
</table></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><table width="100%" border="1" cellspacing="1" cellpadding="1">
<tr>
<td> </td>
<td> </td>
</tr>
</table></td>
</tr>
</table>
根据上表,生成了下面的数组,
$arr = array('<table>','<tr>','<td>','</td>','<td>','<table>','<tr>','<td>','</td>','<td>','</td>','</tr>','</table>',
'</td>','</tr>','<tr>','<td>','</td>','<td>','</td>','</tr>','<tr>','<td>','</td>','<td>','</table>','<tr>','<td>'
,'</td>','<td>','</td>','</tr>','</table>','</td>','</tr>','</table>'),然后希望根据上面的数组给每个TD标上号,生成下面的一个数组,
$ar = array();
$ar[] = array('1','1','1');
$ar[] = array('1','1','2','2');
$ar[] = array('1','2','1');
$ar[] = array('1','2','2');
$ar[] = array('1','3','1');
$ar[] = array('1','3','2','3');
$ar[] = array('2','1','1');
$ar[] = array('2','1','2');
$ar[] = array('3','1','1');
$ar[] = array('3','1','2');
其中,ar数组中,前三位分别表示表格号、行号、列号。第四位表示该单元格的嵌套表格号。弄了两天了,还是没成呀,
<table width="100%" border="1" cellspacing="1" cellpadding="1">
<tr>
<td> </td>
<td><table width="100%" border="1" cellspacing="1" cellpadding="1">
<tr>
<td> </td>
<td> </td>
</tr>
</table></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><table width="100%" border="1" cellspacing="1" cellpadding="1">
<tr>
<td> </td>
<td> </td>
</tr>
</table></td>
</tr>
</table>
根据上表,生成了下面的数组,
$arr = array('<table>','<tr>','<td>','</td>','<td>','<table>','<tr>','<td>','</td>','<td>','</td>','</tr>','</table>',
'</td>','</tr>','<tr>','<td>','</td>','<td>','</td>','</tr>','<tr>','<td>','</td>','<td>','</table>','<tr>','<td>'
,'</td>','<td>','</td>','</tr>','</table>','</td>','</tr>','</table>'),然后希望根据上面的数组给每个TD标上号,生成下面的一个数组,
$ar = array();
$ar[] = array('1','1','1');
$ar[] = array('1','1','2','2');
$ar[] = array('1','2','1');
$ar[] = array('1','2','2');
$ar[] = array('1','3','1');
$ar[] = array('1','3','2','3');
$ar[] = array('2','1','1');
$ar[] = array('2','1','2');
$ar[] = array('3','1','1');
$ar[] = array('3','1','2');
其中,ar数组中,前三位分别表示表格号、行号、列号。第四位表示该单元格的嵌套表格号。弄了两天了,还是没成呀,
解决方案 »
- php的GD绘图在浏览器中只显示一个叉,保存出来的图片可以看见,但直接显示不知道为什么就是不行
- REMOTE_ADDR无法显示ip啊!!!!
- 谁能帮我分析下下面的代码
- php反向引用出错?
- PHP如何连“http基础验证(http basic authentication)”?谢谢
- PHP ASP JSP哪个最强?
- 怎么将第一个页面exam1.php生成的数组传递给第二个页面exam2.php ?
- asp和php能访问sybase anywhere数据库吗?
- 怎样在PHP编写的网页中实现用不同的字体显示文字??
- 学习php 类,遇到一个基础问题,求好心人解答。
- 【上海易略】急招30名有PERL经验,并且接触过CPAN的开发人员
- 求php+mysql三级联动代码
$text =<<< HTML
<table width="100%" border="1" cellspacing="1" cellpadding="1">
<tr>
<td> </td>
<td><table width="100%" border="1" cellspacing="1" cellpadding="1">
<tr>
<td> </td>
<td> </td>
</tr>
</table></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><table width="100%" border="1" cellspacing="1" cellpadding="1">
<tr>
<td> </td>
<td> </td>
</tr>
</table></td>
</tr>
</table>
HTML;preg_match_all('/<\/?\w+/', $text, $regs);
$arr = array_map(create_function('$v', 'return $v.">";'), $regs[0]);
print_r($arr);
$tr = 0;
$td = 0;
foreach($arr as $v) {
$tag = preg_replace('/[<\/]+(\w+)>/', '\\1', $v);
if($v[1] == '/' && $tag == 'table') $$tag--;
else {
if($tag == 'tr') $td = 0;
$$tag++;
if($tag == 'td') $ar[] = array($table, $tr, $td);
}
}
print_r($ar);