нужно вообщем спарсить блок текста включая перевод строк, тэги, каким образом написать эту регулярку пробывал PHP: /<body>(.*)</body>/si получается. Но когда применяю регулярку внитри страницы, то ничего не выводит. Чего делать?
не работает PHP: preg_match("#<tr><td colspan=3><a name=\"director\"><\/td><\/tr>(.*?)<tr><td colspan=3><a name=\"actor\"><\/td><\/tr>#", $this->awards, $result); кусок кода страницы PHP: <tr><td colspan=3><br /><br /></td></tr> [B]<tr><td colspan=3><a name="director"></td></tr>[/B] <tr><td colspan=3 height=20 style="padding-left:20px;border-bottom:2px solid #f60;font-size:16px">Режиссеры</td></tr> <tr><td colspan=3><br /></td></tr> </table> <div class="dub"> <i>1.</i> <a href="/level/4/people/27977/"><img src="http://st.kinopoisk.ru/images/sm_actor/27977.jpg" alt="Джеймс Кэмерон (James Cameron)" /></a> <p><a href="/level/4/people/27977/">Джеймс Кэмерон</a><b>James Cameron</b>... </p> </div> <table cellspacing=0 cellpadding=0 width=100% border=0> <tr><td colspan=3><br /></td></tr> <tr><td colspan=3 style="border-top:1px solid #ccc"><br /></td></tr> <tr><td colspan=3 style="padding-left:20px"><img src="http://st.kinopoisk.ru/images/arrow-top2.gif" width=17 height=8><a href="#top" class="continue">Наверх страницы</a><br><br> </td></tr> [B]<tr><td colspan=3><a name="actor"></td></tr>[/B] <tr><td colspan=3 height=20 style="padding-left:20px;border-bottom:2px solid #f60;font-size:16px">Актеры</td></tr> <tr><td colspan=3><br /></td></tr>
А причем здесь первый код? PHP: <?php $a = '<tr><td colspan=3><br /><br /></td></tr> [B]<tr><td colspan=3><a name="director"></td></tr>[/B] <tr><td colspan=3 height=20 style="padding-left:20px;border-bottom:2px solid #f60;font-size:16px">Режиссеры</td></tr> <tr><td colspan=3><br /></td></tr> </table> <div class="dub"> <i>1.</i> <a href="/level/4/people/27977/"><img src="http://st.kinopoisk.ru/images/sm_actor/27977.jpg" alt="Джеймс Кэмерон (James Cameron)" /></a> <p><a href="/level/4/people/27977/">Джеймс Кэмерон</a><b>James Cameron</b>... </p> </div> <table cellspacing=0 cellpadding=0 width=100% border=0> <tr><td colspan=3><br /></td></tr> <tr><td colspan=3 style="border-top:1px solid #ccc"><br /></td></tr> <tr><td colspan=3 style="padding-left:20px"><img src="http://st.kinopoisk.ru/images/arrow-top2.gif" width=17 height=8><a href="#top" class="continue">Наверх страницы</a><br><br> </td></tr> [B]<tr><td colspan=3><a name="actor"></td></tr>[/B] <tr><td colspan=3 height=20 style="padding-left:20px;border-bottom:2px solid #f60;font-size:16px">Актеры</td></tr> <tr><td colspan=3><br /></td></tr>'; preg_match("#<tr><td colspan=3><a name=\"director\"></td></tr>(.*?)<tr><td colspan=3><a name=\"actor\"></td></tr>#s", $a, $result); var_dump($result[1]); Что тебе надо получить из этого куска?
содержимое между этими метками PHP: [B]<tr><td colspan=3><a name="director"></td></tr>[/B] ... [B]<tr><td colspan=3><a name="actor"></td></tr>[/B] /PHP] там просто задача такая, что бы получить текст между двумя метками, а потом уже вот этот текст парсить
короче херня, применяя такую регулярку #director(.|\n|\r|\t)*actor# к куску текста, пашет, в проге уже не пашет
Решал подобную задачу создавая для каждой регулярки шаблон. $result="страница"; $sh1="#<a name=\"director\">(*.?)</td></tr>#si"; #sh2="<a name=\"actor\">(*.?)</td></tr>#si"; preg_match($sh1,$result,$mar); $r1=preg_replace("#<a name=\"director\">(*+?)</td></tr>#si","$1",$mar[1]); проблема решалась на ура если шаблонов много, то там уже можно загонять в массив.