Jonny 5: Code kürzen?

Beitrag lesen

Ich setzt noch einen drauf :D.
Man muss auch auf den richtigen Zeichensatz achten.

Ich setzte auch noch einen drunter :-D

Der u modifier (PCRE_UTF8) ist nötig, wenn das Suchmuster UTF-8 enthält, in der Regel dann, wenn man UTF-8 Zeichenketten verarbeitet, was hier ja nicht der Fall ist.

Aber hat evtl. jemand eine Idee wie es kürzer/schneller/einfacher geht?

Ja, mittels REGEX und der Annahme, dass dein gesuchter Brocken mehrfach vorkommt, z.b. so:

  
if(preg_match_all('~(?<=START MAIN //-->).*(?=<!-- END MAIN)~sU',file_get_contents($site_name),$out)) {  
  var_dump($out);  
} else {  
  echo "FAIL";  
}  

Array $out[0] sollte dann die gesuchten Stücke enthalten...

Du suchst alle irgendwelche Zeichen (Punkt) begrenzt durch ein START MAIN //--> und <!-- END MAIN.

Modifier
Der s Modifier bestimmt, dass der Quantifikator Punkt im Suchmuster auch auf Zeilenumbrüche zutrifft.
Der U Modfier kehrt die Gier von Quantifikatoren um. Quantifier werden ungreedy, genau so gut ginge in dem Fall ein Fragezeichen nach dem Quantifikator Stern.

Lookarounds
(?<= leitet einen positiven Lookbehind ein. Du möchtest alle Zeichen, vor denen ein START MAIN //--> vorkommt.
(?= leitet einen positiven Lookahead ein. Alle Zeichen, bis <!-- END MAIN

Lookarounds, damit das Ausgabe-Array nicht mit unnötigen Stücken gefüllt wird. Es gibt natürlich viele Möglichkeiten, so ein triviales Problem mittels REGEX zu lösen.

lG,
Jonny 5