Alles vor <body> u. nach </body> löschen

Hi,

ich hab auf meiner Webseite Script-Tuts, Downloads usw.

Dazu will ich noch eine Suche machen. Bei den Downloads ist das auch kein Problem, geht ja mit %begriff% usw., weil ich die Daten alle in einer DB hab.

Bei den Scripten ist es aber anders. Da mach ich für jedes Script ne eigene Seite.
Jetzt will ich diese aber auch durchsuchen können.
Ich hab mir das so forgestellt:
1. Ich lad den Inhalt der Betroffenen Dateien in einen String (mit fgets...)
2. Dann könnte ich den String durchsuchen, aber es sollte ja nur alles zw. <body> und </body> durchsucht werden. Ich würde das so machen:
Irgedwie mit substr (o.ä.) alles vor <body> und <body> selber bzw. </body> und alles danch löschen-
Dann könnte ich mit strip_tags den Rest-HTML entfernen und duchsuchen mit preg_match z.B.

Mein einziges Problem ist gerade noch das halt das vor <body> bzw am Ende gefiltert wird.

Wie mache ich das am einfachsten

mfg und vielen Dank,

Markus
 
Hi!

probiers mal so:suspekt: :

PHP:
<?php
$string="TEST1, TEST2<body>BODY1, BODY2 BODY3</body>TEST3, TEST4, TEST5";
 
$start=strpos($string,"<body>")+6;
$end=strrpos($string,"</body>");
$in_body=substr($string,$start,($end-$start));
echo($in_body);
?>
 
Hier eine etwas kürzere, universelle Lösung:
PHP:
<?php

	$contents = file_get_contents('http://example.org/');
	preg_match('/<body(?:[^>]*?)>(.*?)<\/body>/si', $contents, $matches);
	echo $matches[1];

?>
 
Zurück