"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

regexp prob in php

watchout 01.11.2002 - 20:49 627 4
Posts

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
hab wieder mal ein prob mit den regexp...

also mein problem: ich versuche nur den Inhalt eines Body-Tags auszugeben, meine derzeitige lösung geht wie folgt:
Code: PHP
$result = preg_match("/<body(?:(.*)?)>(.*)?<\/body>/is",$file['content'], $match);
echo $match[0];
nur wird mir da komischerweise alles von der ersten '(' bis zum letzten ')' in $match[0] zurückgegeben...

ps: kenn mich mit regexp noch net so gut aus... sind ein bisserl kryptisch imho

edit: match[1] - net [0] alles ;)
Bearbeitet von watchout am 01.04.2003, 19:24

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Das ist nicht komisch, das ist normal. Du kannst entweder den greedyness Modifier verwenden (ich glaub, den gibt's in php) oder das mit der Klammer so umschreiben:

\([^)]*\)

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von Ringding
Das ist nicht komisch, das ist normal. Du kannst entweder den greedyness Modifier verwenden (ich glaub, den gibt's in php) oder das mit der Klammer so umschreiben:

\([^)]*\)
ähm, ich glaub du hast da was falsch verstanden... ;) die klammern sind ja kein teil des html-textes, die gehören schon zum regexp-code, deswegen will ich sie auch ganz sicher nicht escapen.... :rolleyes:

mein problem ist, dass der body-tag nicht nur so: <body> aussachauen kann, sondern auch zb so:
<body background='bg.gif' style='text-align:center;'>
und dafür brauch ich noch ein bisserl klammernzeug da drinnen... :rolleyes:

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Ja, ist mir schon aufgefallen, aber ich glaub, es sollte klar sein, was ich mein.

Dann musst du halt die erste Klammer so machen:

([^>]*)>

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von Ringding
Ja, ist mir schon aufgefallen, aber ich glaub, es sollte klar sein, was ich mein.

Dann musst du halt die erste Klammer so machen:

([^>]*)>
man, bin ich ein koffer :bash: - eh klar - im nachhinein.... :)


thx @ master ringding :) - problem solved
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz