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

投稿されたコードは機能します。あなたが抱えている問題は、結果をブラウザでWebページとして表示していることです。これにより、最後の要素を除くすべてが非表示のままになります。ブラウザで>sourceを表示すると、期待どおりの正しい結果が表示されます。

HTML解析のより良いオプションは、ネイティブDOMDocumentです。

Codepad codepad.org/K9ETKzUNで動作しますが、ブラウザで実行すると動作しません

これは、Codepadがブラウザを複製しないため、Codepadの出力はリテラルテキストです。HTMLタグは、Webページにあるように解釈されません。

于 2013-02-25T11:46:20.083 に答える
1

爆発していないとどうやって結論付けましたか?おそらくブラウザでprint_rの出力を見ると、実際には間違っています。あなたがしたことは何でも正しく働いています。print_r($ myarr)をvar_dump($ myarr)に置き換えると、私が何を意味するかがわかります。

ブラウザは最終的にテーブルを一緒にレンダリングしているだけです:)

于 2013-02-25T11:46:23.983 に答える