1

这是代码,但explode()方法不会在<tr>发生时从字符串中拆分数据。让我知道在这个简单的案例中我做错了什么。在这种情况下最好不使用正则表达式。

编辑

它在 Codepad codepad.org/K9ETKzUN 中工作,但浏览器没有输出 php 呈现的代码。

<?php

$tabledata = '<table width="90%" cellspacing="1" cellpadding="4" border="3" bgcolor="#f5f5f5">
<tbody>

<tr>
<th>No</th>
<th>AnimalNo</th>
<th>Name</th>
<th colspan="1">Sub1</th>
<th colspan="1">Sub2</th>
<th colspan="1">Sub3</th>
</tr>

<tr>
<th colspan="1"></th>
<th colspan="1"></th>
<th colspan="1"></th>
<th colspan="1">Subpart1</th>
<th colspan="1">Subpart2</th>
<th colspan="1">Subpart3</th>
</tr>

<tr>
<th colspan="1"></th>
<th colspan="1"></th>
<th colspan="1"></th>
<td class="countcompfield">Max mark1</td>
<td class="countcompfield">Max mark2</td>
<td class="countcompfield">Max mark3</td>
</tr>



<tr>
<td></td>
<td>A1</td>
<td>Name1</td>
<td>34</td>
<td>56</td>
<td>67</td>
</tr>

<tr>
<td></td>
<td>B2</td>
<td>Name2</td>
<td>89</td>
<td>76</td>
<td>56</td>
</tr>

<tr>
<td></td>
<td>C1</td>
<td>Name3</td>
<td>34</td>
<td>17</td>
<td>23</td>
</tr>

</tbody>
</table>';

$myarr = explode('<tr>',$tabledata);

echo "<pre>";
print_r($myarr);
4

3 回答 3

1

它的工作...运行脚本并查看源代码。

右键->查看源代码

于 2013-02-25T11:46:13.037 回答
1

发布的代码有效。您遇到的问题是您在浏览器中将结果作为网页查看,这导致除了最后一个元素之外的所有元素都保持隐藏状态。如果您在浏览器中查看>源代码,您将看到预期的正确结果。

HTML 解析的更好选择是本机DOMDocument

它在 Codepad codepad.org/K9ETKzUN 中工作,但在浏览器中运行它不会

那是因为键盘不复制浏览器,键盘上的输出是文字。HTML 标记不会像在网页上那样被解释。

于 2013-02-25T11:46:20.083 回答
1

你怎么断定它没有爆炸?也许通过在浏览器中查看 print_r 的输出,您实际上弄错了。无论您所做的一切都在正常工作。将 print_r($myarr) 替换为 var_dump($myarr) 你就会明白我的意思了。

浏览器最后只是将表格一起渲染:)

于 2013-02-25T11:46:23.983 回答