2013-02-25 1 views
1

Это код, но метод explode() не разбивает данные из строки на <tr>. Позвольте мне знать, что я делаю неправильно в этом простом случае. Лучше, если не использовать регулярное выражение в этом случае.Explode method не взрывает строку в php

EDIT

Он работает в Codepad codepad.org/K9ETKzUN, но браузер не выводит РНР вынесенного кода.

<?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); 
+2

Каков выходной сигнал, который вы * получаете? – L0j1k

+0

Используйте http://www.php.net/manual/en/book.dom.php для управления HTML. Забудьте о взрыве или регулярном выражении. –

+1

Я только что протестировал этот код, и он работает. Обратите внимание, что 'explode()' удалит '' из результата. – Naryl

ответ

1

Его рабочий ... Запустить сценарий и увидеть источник.

правой кнопкой мыши -> просмотреть исходный код

+0

... очень спасибо .. :) +1 – Trialcoder

1

Код размещены работы. Проблема заключается в том, что вы просматриваете результат в браузере в качестве веб-страницы и заставляете все, кроме последнего, оставаться скрытыми. Если вы просматриваете> источник в своем браузере, вы увидите ожидаемый и правильный результат.

Лучшим вариантом для разбора HTML является родной DOMDocument.

Его работы в Codepad codepad.org/K9ETKzUN, но работает в браузере оно не

Это потому, что Codepad не размножается браузер, выход на Codepad является буквальным текстом. HTML-теги не интерпретируются так, как они есть на веб-странице.

+0

Да, вы очень правы, я только что зарегистрировался и его пре ... + 1 – Trialcoder

1

Как вы заключили, что это не взрывается? возможно, глядя на вывод print_r в браузере, вы на самом деле ошибаетесь. Все, что вы сделали, работает правильно. Замените print_r ($ myarr) на var_dump ($ myarr), и вы поймете, что я имею в виду.

Браузер просто создает стол вместе в конце :)

+0

I var dumped and its thr +1 – Trialcoder