preg_match() | Bestimmten Bereich mit Zeilenumbrüchen auslesen

firewing

Grünschnabel
Guten Tag, nun (nach verzweifelten 5 Stunden) will ich mich mal an euch Profies wenden.
Ich lese per fopen() eine HTML Datei mit Tabellen aus. Das klappt auch mit preg_match() alles hervorragend bis zB ein solches Konstrukt kommt:

====================================================
<body><tr><td class="daten">Telefonnummer:</td><td>......
.........................046242346
.........................</td></tr>
====================================================

Wie kann ich nun wirklich mit preg_match diesen "Härtefall" auslesen? Es kommt auch unbedingt drauf an, dass er sich nach "Telefonnummer:</td><td>" richtet, da er sonst andere tds "erwischen" könnte. Bitte, bitte kommt mir nicht mit How To's usw. Mir fehlt da immer irgendwie nen /, + oder ne [....


EDIT: Da das Board die Leerzeichen ignoriert, mache ich sie hier mal als Punkte...

Vielen Dank im Vorraus!
 
Zuletzt bearbeitet:
Hi

Ich verstehe nicht ganz was dein problem ist, aber villeicht suchst du nach dem "m" für multiline.

also einfach

PHP:
preg_match("/derRegex/m", ...

bzw. zeig uns mal ein bisschen Code mit dem du das bis jetzt ausliest.
 
Also der Code sieht momentan wie folgt aus:
PHP:
if (preg_match("(\Telefonnummer:</td><td[\s]*\>(.*)\<\/td[\s]*\>)", $line, $out )) {$telefonnummer = $out[1];};
Muss zwischen die <td>'s noch das /m eingebunden werden? Kannst du mir den Code einmal richtig hinschreiben, bin echt verzweifelt :confused:
Danke im Vorraus!
 
Hallo

Dieser Code dürfte meiner Meinung nach nicht einmal bei einer Zeile funktionieren, da du manche Sonderzeichen nicht escapesd.

PHP:
if (preg_match("/(\Telefonnummer\:\<\/td\>\<td\s*\>(.*)\<\/td\s*\>)/m", $line, $out )) {$telefonnummer = $out[1];};

versuch es mal so.
Und lies dir mal ein Tutorial zu diesem Thema durch.
 
PHP:
if (preg_match("/(\Telefonnummer\:\<\/td\>\<td\s*\>(.*)\<\/td\s*\>)/m", $line, $out )) {$telefonnummer = $out[2];};

mit $out[2] gehts, vielen Dank!
 
Zurück