Задача спарсить содержимое между тегами, tr к примеру
<tr>¬
<td>A cell</td>¬
<td colspan="2" rowspan="2">¬
<table border="1" style="background-color: green;">¬
<tr>¬
<td>Cell</td>¬
<td colspan="2" rowspan="2"></td>¬
</tr>¬
<tr>¬
<td>Cell</td>¬
</tr>¬
<tr>¬
<td>Cell</td>¬
<td>Cell</td>¬
<td>Cell</td>¬
</tr>¬
</table>¬
</td>¬
</tr>¬
Если регулярка или мое решение
function extractString($string, $start, $end)
{
$string = " ".$string;
$ini = strpos($string, $start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string, $end, $ini) - $ini;
return substr($string, $ini, $len);
}
extractString($table, '<tr>', '</tr>');
Тогда оба решения возьмут содержимое между первым тегом и первым закрытым тегом, и получается дерево элементов не верное.
И получается, что возьмет содержимое
<tr>¬
<td>A cell</td>¬
<td colspan="2" rowspan="2">¬
<table border="1" style="background-color: green;">¬
<tr>¬
<td>Cell</td>¬
<td colspan="2" rowspan="2"></td>¬
</tr>¬
А мне нужно
<tr>¬
<td>A cell</td>¬
<td colspan="2" rowspan="2">¬
<table border="1" style="background-color: green;">¬
<tr>¬
<td>Cell</td>¬
<td colspan="2" rowspan="2"></td>¬
</tr>¬
<tr>¬
<td>Cell</td>¬
</tr>¬
<tr>¬
<td>Cell</td>¬
<td>Cell</td>¬
<td>Cell</td>¬
</tr>¬
</table>¬
</td>¬
</tr>
Точно такая же ситуация и с другими тегами ( что естественно).
Я не пойму как решить такую задачу.
Да, есть domdocument, но мне нужно свое решение((((