Hallo, bin blutiger Anfänger was reguläre Ausdrücke angeht. Ich möchte HTML-Code parsen und alle Strings, die sich zwischen den Tags <P> und </P> befinden, in ein Array einlesen.
Mein Code:
#$pdf_daten ist der durch ein Formular per POST übergebene, zu parsende String
if (preg_match_all("|<P>(.*)</P>|", $pdf_daten, $b_treffer)) {
for ($i=0; $i < count($b_treffer[1]); $i++) {
print $b_treffer[1][$i] . "<br>";
}
} else {
print "Fehlerhaftes Format!";
}
Das klappt aber nicht, die Variante mit <LI></LI> statt <P></P> funzt aber, liegt also wahrscheinlich am String... Der sieht - in Auszügen - so aus:
<UL STYLE='DISK'>
<LI>topic1</LI>
<LI>topic2</LI>
<LI>topic3</LI>
</UL>
<P>
<EM>Wie das geht:</EM><BR>
bla bla bla
bla
bla
bla bla
</P>
... wird wohl mit daran liegen, das topic1 in einer Zeile mit den begrenzenden Tags steht. Wie kann ich berücksichtigen, dass das bei dem String, der durch <P> und </P> begrenzt wird, nicht so ist?
Gruß,
Maik
Mein Code:
#$pdf_daten ist der durch ein Formular per POST übergebene, zu parsende String
if (preg_match_all("|<P>(.*)</P>|", $pdf_daten, $b_treffer)) {
for ($i=0; $i < count($b_treffer[1]); $i++) {
print $b_treffer[1][$i] . "<br>";
}
} else {
print "Fehlerhaftes Format!";
}
Das klappt aber nicht, die Variante mit <LI></LI> statt <P></P> funzt aber, liegt also wahrscheinlich am String... Der sieht - in Auszügen - so aus:
<UL STYLE='DISK'>
<LI>topic1</LI>
<LI>topic2</LI>
<LI>topic3</LI>
</UL>
<P>
<EM>Wie das geht:</EM><BR>
bla bla bla
bla
bla
bla bla
</P>
... wird wohl mit daran liegen, das topic1 in einer Zeile mit den begrenzenden Tags steht. Wie kann ich berücksichtigen, dass das bei dem String, der durch <P> und </P> begrenzt wird, nicht so ist?
Gruß,
Maik
Kommentar