regexp prob in php
watchout 01.11.2002 - 20:49 627 4
watchout
Legendundead
|
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: $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
|
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
Legendundead
|
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.... 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...
|
Ringding
Pilot
|
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
Legendundead
|
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 - eh klar - im nachhinein.... thx @ master ringding - problem solved
|