... Probleme gibt es nur bei dem überspringen der "Zwischenstücke".
<h1 id="post-304455"><a href="blub" rel="bookmark" title="Permanent Link to blablub"><font color="black"><b>atom rofl lol</b></font></a> </h1>
<p class="date">Sonntag, 13. Juni 2010 11:07   <a href="http://twitter.com/" title="Click to send this page to Twitter!" target="_blank"><img src="http://picload.org/image/rdrclw/twittereus0.jpg" style="border: 0pt none;margin: 0px"></a></p>
<div class="entry"><!-- the entry -->
<p>bla bla bla blub ba dasfja sfweah falkshfailwefh asdfa</p><p><img src="http://www.google.com/intl/de_de/lovefootball/doodle4google/img/doodles/9-doodle.jpg" alt="" /><br />
<strong>Dauer: </strong>1 min. | <strong>Format: </strong>DSA | <strong>Größe: </strong>4 MB | <a href="blub.htmö" target="_blank">blub</a><br />
Ich schreibe in Perl.
Das Prinzip zu PHP sollte ähnlich sein.
Wir verwenden eine Callback-Funktion.
Zuerst wollen wir einen "Entry" als Einheit erkennen. Dies schicken wir dann an die Callback-Funktion zum weiteren Parsen.
~~~perl
$bad_code =~ $entry_rex and entry_sub_parse(1);
entry_sub_parse{
# dies ist eine callbackfunktion.
}
my $entry_rex = qr/
(
<h1 \s+ id="post-\d+">
.+?
<!-- \s+ the \s+ entry \s+ -->
.+?
<img \s+ src="[^"]+"
.+?
<strong>Dauer:\s*</strong>
[^|]+
\|
\s*
<strong>Format:\s*</strong>
[^|]+
\|
\s*
<strong>Größe:\s*</strong>
[^|]+
\|
\s*
<a \s+ href="[^"]".+?</a>
)
/xs;
Schau mal, ob diese REX in der Lage ist, einen Entry zu erkennen
Der modifier /x erlaubt whitspace zur Formatierung
Wenn du ihn weglässt, musst du allen Whitespace entfernen.
mfg Beat
><o(((°> ><o(((°>
<°)))o>< ><o(((°>o
Der Valigator leibt diese Fische