I have a huge html document that has different tables with unique table IDs. Something like:
<table class="my_table" id="table_id1">
<tr class="odd"><td>Line 1</td></tr>
<tr class="even"><td>Line 2</td></tr>
<tr class="odd"><td>Line 3</td></tr>
<tr class="even"><td>Line 4</td></tr>
</table>
<table class="my_table" id="table_id2">
<tr class="odd"><td>Line 1</td></tr>
<tr class="even"><td>Line 2</td></tr>
<tr class="odd"><td>Line 3</td></tr>
</table>
Is it possible using preg_match to find HTML of all rows of a specific table?
I tried the following code:
preg_match('/<table[^>]*id="table_id2">(<tr[^>]*><td>[^>]*<\/td><\/tr>)+/', $html, $matches);
//$html variable contains the html.
but it returns the output like:
Array
(
[0] => Array
(
[0] => <table class="my_table" id="table_id2"><tr class="odd"><td>Line 1</td></tr><tr class="even"><td>Line 2</td></tr><tr class="odd"><td>Line 3</td></tr>
)
[1] => Array
(
[0] => <tr class="odd"><td>Line 3</td></tr>
)
)
But I need the output like this:
Array
(
[0] => Array
(
[0] => <table class="my_table" id="table_id2"><tr class="odd"><td>Line 1</td></tr><tr class="even"><td>Line 2</td></tr><tr class="odd"><td>Line 3</td></tr>
)
[1] => Array
(
[0] => <tr class="odd"><td>Line 1</td></tr>
[1] => <tr class="odd"><td>Line 2</td></tr>
[2] => <tr class="odd"><td>Line 3</td></tr>
)
)
Is it possible? Please help.