[php] Problem z preg_match_all

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
tommy_from_cracow
Posty: 1
Rejestracja: czw lip 24, 2008 11:15 am

[php] Problem z preg_match_all

Post autor: tommy_from_cracow »

Witam,

Pisze cos na zasadzie parsera zrodla strony internetowej. Niestety wyrazenia regularne i funkcje PHP z tym zwiazane nie sa mi dobrze znane wiec prosilbym o pomoc. Mam nastepujace zrodlo strony:
[xml]
<TD class=txt>
<CENTER>
<TABLE cellSpacing=0 cellPadding=0 width="100%"
border=0>
<TBODY>
<TR>
<TD class=cz1>Title</TD></TR>
<TR>
<TD height=4></TD></TR>
<TR>
<TD class=txt>Content 1<BR></B></TD></TR>
<TR>
<TD height=8></TD></TR>
<TR>
<TD class=txt>CONTENT 2
<BR></TD></TR></TBODY></TABLE></CENTER></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD>
<TD width=1></TD>
[/xml]

Z tego dokumentu chcialbym wyciagnac tytul oraz Content 1 i Content 2.

Napisalem prosty fragment kodu PHP (prosze o nieocenianie jakosci):

[php]
<?php
$file = file_get_contents('lok.html');
preg_match_all("|<TD class=cz1>(.*?)</TD>|",$file,$outTitle);
// echo $file;
echo $outTitle[0][0].'<br />';
// echo count($outTitle);
// echo $outTitle[0][1];
// echo $outTitle[1][0];
// echo $outTitle[1][1];
preg_match_all("|<TD class=txt>(.*)</TD>|",$file,$outContent);
echo $outContent[0][0].'<br />';
?>
[/php]

Kod html zapisany jest w pliku wczytywanym przez funkcje file_get_contents.
Do pierwszej tablicy ($outTitle) trafia tytul artykulu bez problemu i jest "echowany" wlasciwie.

Natomiast przy probie pobrania wszystkiego z npomiedzy [xml]<TD class=txt></TD>[/xml] niestety nie udaje mi sie wydobyc nic...

Bede wdzieczny za sugestie i pomoc.

Z gory dziekuje i pozdrawiam.
ODPOWIEDZ