Hallo Ingrid,
Aber hat evtl. jemand eine Idee wie es kürzer/schneller/einfacher geht?
kürzer will ich nicht versprechen - aber IMO einfacher und leichter nachvollziehbar.
Zunächst mal würde ich nicht file() zum Lesen des Dateiinhalts verwenden, sondern file_get_contents(). Dann habe ich den Dateiinhalt nämlich nicht mehr als Array aus Strings vorliegen, die ich einzeln durchgehen muss, sondern als *einen* String, den ich am Stück behandeln kann.
Grobentwurf ohne Garantie:
$startseq = '<!-- START MAIN //-->';
$endseq = '<!-- END MAIN //-->';
$text = file_get_contents($filename);
$start = strpos($text, $startseq);
$end = strpos($text, $endseq);
if ($start===false // start sequence not found
|| $end===false // end sequence not found
|| $end<$start) // end sequence found before start sequence
{ echo 'Section not found';
}
else
{ $start += strlen($startseq);
echo htmlspecialchars(trim(substr($text, $start, $end-$start)));
}
Beachte, dass ich außerdem nicht htmlentities() verwende, sondern htmlspecialchars(), weil ich nicht sämtliche nicht-ASCII-Zeichen zu Entity-Referenzen verstümmeln möchte, sondern nur die Zeichen maskieren will, bei denen das nötig ist.
So long,
Martin
--
Wer im Steinhaus sitzt, soll nicht mit Gläsern werfen.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
Wer im Steinhaus sitzt, soll nicht mit Gläsern werfen.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(