Der Martin: Code kürzen?

Beitrag lesen

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&uuml;mmeln m&ouml;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:(