Функции парсинга HTML кода. Хочу написать функции парсинга HTML кода, в частности интересует функция которая бы возвращала некий блок в HTML коде. Т.е.: Допустим есть HTML код: Код (Text): <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>Яндекс: 1</title> <link rel="SHORTCUT ICON" href="/favicon.ico"> <link rel="Stylesheet" href="http://css.yandex.net/css/optim.css?ctrl"> <script type="text/javascript" src="http://css.yandex.net/css/js/tab.js?new"></script> <link rel="search" href="opensearch.xml" title="Яндекс" type="application/opensearchdescription+xml"> </head> <body text="#000000" link="#0000cc" onload="document.forms['web'].text.value = '1'; init();" onpageshow="if (event.persisted) {document.forms['web'].text.value = '1'; init();}" style="background-image:url(http://www.tns-counter.ru/V13a****yandex_ru/ru/CP1251/tmsec=yandex_serp/0)"> <table class="hat"> <tr> <td width="2%"></td> <th></th> <td class="top"> <table> <tr> <td width="20%"><h1><br></h1></td> <td class="mail"> <a href="http://mail.yandex.ru" onclick="w(this,'175.176');">Почта</a> </td> <td class="nahodki"> <a href="http://nahodki.yandex.ru">Мои находки</a> </td> <td class="cust"> <a href="/cgi-bin/customize.pl?yxqs=text%3D1%26%26rpt%3Drad" onclick="w(this,'175.178');">Настроить поиск</a> </td> <td class="logout"> <a href="http://passport.yandex.ru/passport?mode=auth&retpath=http%3A%2F%2Fwww.yandex.ru%2Fyandsearch%3Ftext%3D1%26rpt%3Drad%26login">Войти…</a> </td> </tr> </table> </td> <td width="2%"></td> </tr> <tr valign="top"> <td></td> <th> <[b]table[/b] class=”[b]MyClass[/b]”> <tr> <td><b><a href="/" onclick="w(this,'175.179');"><img src="http://img.yandex.net/i/yandex-v9.gif" alt="Яндекс"></a></b></td> <td><i><i></i></i></td> </tr> </table> </body> </html><!-- 0.494601 --> Я передаю в эту функцию следующие: Имя тэга – table, имя класса – MyClass А на выходе получал этот самый блок т.е.: Function parsHTML($table, $class) Код (Text): <[b]table [/b]class=”[b]MyClass[/b]”> <tr> <td><b><a href="/" onclick="w(this,'175.179');"><img src="http://img.yandex.net/i/yandex-v9.gif" alt="Яндекс"></a></b></td> <td><i><i></i></i></td> </tr> </table> Вот делал я это функцию да чтото уже запутался, может кто подскажет, или поможет чем, может уже есть такая функция ? Заранее всем огромное спасибо ! PS: Чтото жирным не выделяется ... Там этот блок в HTML коде снизу, я так для понятности... )
Код (Text): function find_block ($page, $table, $class_name) { $page = trim($page); $len_page = strlen($page); //$page = str_ireplace(' ', '_',$page); $pos_table = stripos($page, '<'.$table); $page = substr($page, $pos_table, $len_page); $pos_class_name = stripos($page, 'class="'.$class_name.'"'); $page = substr($page, $pos_class_name, $len_page); //$page = substr($page, $pos_class_name, $len_page); //while ($pos_tag > 0) { //$pos_tag--; //if ($pos_tag=0) { //$str_tag = substr($page, $pos_tag, 1); //if ($str_tag == '<') { //$page = substr($page, $pos_tag, $len_page); //break; //} //} //} //$pos = stripos($page, $class_name); return $page; } Смешно конечно... ))) Но только полчаса назад функцию писать начал и запутался.... ) Дело в точ что мне необходимо вернуть именно БЛОК ! т.е. в данном примере: Код (Text): <[b]table [/b]class=”[b]MyClass[/b]”> <tr> <td><b><a href="/" onclick="w(this,'175.179');"><img src="http://img.yandex.net/i/yandex-v9.gif" alt="Яндекс"></a></b></td> <td><i><i></i></i></td> </tr> </table> А у меня получается возвращается от имени класса и до len_page.... Нужно по дереву тегов бегать пока не получается.... PS Спасибо за быстрый ответ !