爆炸方法不会爆炸php中的字符串

时间:2013-02-25 11:39:53

标签: php html-table explode

这是代码,但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);

3 个答案:

答案 0 :(得分:1)

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

右键单击 - &gt;查看来源

答案 1 :(得分:1)

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

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

  

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

因为Codepad没有复制浏览器,所以Codepad上的输出是文字文本。 HTML标记不会被解释为在网页上。

答案 2 :(得分:1)

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

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