Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : HTML Datei in einer php datei anzeigen



msi
11-07-2004, 20:03
hallo, ich habe eine HTML datei, die bisher in einem frameset angezeigt wird. Nun will ich aber die häßlichen Frames loswerden und dazu wird eine PHP datei aufgerufen, die nun den inhalt der html datei anzeigen soll.
allerdings muss aus dieser datei das alles bis <body> und alles von </body> ab raus (und noch n copyright hinweise am schluss, der noch in der php datei eingefügt wird).
Wie mache ich das am besten?

ich habs schon so versucht:
$v=fread($fp,filesize($file));
$v=preg_replace("/^.*<body[^>]*>/","",$v);
aber das geht nicht. wenn ich das ^.* weg lasse tut er mir das <body> raus, aber immer wenns drinnen ist erkennt er das nicht, ich denke mal, weil $v einach zu groß ist.
wie gehe ich dabei am besten vor?
Bitte nichts mit preg_split machen, diese lösung ist nicht erwünscht.

danke Markus

Gaert
11-07-2004, 21:40
Hallo,

Vielleicht ein bisschen oversized, aber wie wärs mit nem HTML Parser?
https://sourceforge.net/project/showfiles.php?group_id=91649

Gruß,

Gaert

msi
11-07-2004, 21:52
Hallo,

Vielleicht ein bisschen oversized, aber wie wärs mit nem HTML Parser?
https://sourceforge.net/project/showfiles.php?group_id=91649

Gruß,

Gaert

ne, dass ist für so ne kleine sache wirklich übertrieben. Es soll ja nur ein kleiner Teil herausgefiltert werden, allerdings krieg ich das einfach nicht hin :(

Pingu
12-07-2004, 05:13
Hi,

wie wäre es hiermit?


if (is_file($file) && preg_match("|<body[^>]*>(.*)</body>|si", implode("", file($file)), $matches))
$content = sprintf('<div class="content">%s</div>', $matches[1]);
else
$content = "";


Pingu

LittleBit
12-07-2004, 13:45
implode("", file($file))

Könnte Schwierigkeiten bei aufeinanderfolgenden Textzeilen geben. Die Worte werden dann ungewollt concateniert.

Ab PHP 4.3.0
file_get_contents($file)

Sonst im implode Zeilenumbrüche einfügen...


Gruß,
Tom

PS: Ohne das jetzt getestet zu haben - muss bei preg_match nicht \<, \> statt <,> verwendet werden ?