Hallo Christoph!
Ein PHP-Script soll HTML-Dateien, die zum selben "Projekt" gehören, einlesen und darstellen. Das ist noch kein Problem. Jetzt hat das Script selbst aber schon einen Header-Bereich mit <!DOCTYPE...> und <meta ...>. [...]
So, wie ich das verstanden habe (mit der leckeren Flasche Wein in meinem Kopf), möchtest Du alles zwischen header einlesen.
Mit dem Ausdruck
/<!DOCTYPE.*?>[\s]*<html.*?>(.*)<body.*?>/is
sollte (getestet) im Index mit der Nr. 1 der gesamte header stehen.
preg_match('/<!DOCTYPE.*?>[\s]*<html.*?>(.*)<body.*?>/is', $html_datei, $match);
echo $match[1];
// $html_datei
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Hier ist der Titel</title>
<meta http-equiv="Content-Language" content="de">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<link rel="stylesheet" type="text/css" href="allgemein.css">
<script type="text/javascript">
<!--
// Hier ist ein Script
//-->
</script>
</head>
<body>
Hier ist der Quelltext
</body>
</html>
Wenn ich den Suchausdruck nach dem Schema /<.+>/ "gierig" mache, hält er ja bei <body> nicht an, [...]
IMHO ist das Plus der Übeltäter. Das Plus bedeutet ja mindestens einmal. Es ist gefräßiger als ein Fragezeichen (gar nicht oder nur einmal).
André Laugks
Die Frau geht, die Hilti bleibt!