SGS: Zeilenumbrüche aus bestimmten Bereich entfernen

Beitrag lesen

Abend

Mein kleines Problem ist folgendes. Ich lasse alle Zeilenumbrüche, die ich in einem Textfeld mache, durch "nl2br" umwandeln in ein <br>.

Nun greift nl2br aber auch bei JavaScripten:

und macht diese damit unbrauchbar.

Bsp.:
Aus
<script language="JavaScript" type="text/javascript">
<!--
  document.write("Ich bin ein JavaScript");
//-->
</script>

wird:
<script language="JavaScript" type="text/javascript">
<!--<br />
  document.write("Ich bin ein JavaScript");<br />
//--><br />
</script>

Gibt es eine Möglichkeit, den Kontext zu durchsuchen nach <script [...] </script> und alle <br>'s in diesem Bereich zu (wieder) entfernen ohne dabei die gewünschten Umbrüche ebenfalls zu entfernen?

Mein (gescheiterter) Ansatz ist/war zunächst:
<?php
function nobr($content){

$searchstring = array(
    "<script[^>]*?>([<br />].+?)</script>"  //Auszug
  );

$replacestring = array(
    "\1"
  );

for ($i=0; $i<count($searchstring); $i++){

$search = $searchstring[$i];
    $replace = $replacestring[$i];

/* $content = str_replace("<br />","\n",preg_replace("'$search'si", $replace, $content)); */

$content = preg_replace("'$search'si", $replace, $content);

}

return $content;
}

$text = 'Text mit <br /> JavaScript TEXT TEXT <script language="JavaScript" type="text/javascript"> document.write("<b>Hallo</b><br />"); </script> und TEXT TEXT TEXT';
  echo nobr($text);

?>

So bekomme ich zwar den Text zwischen den Script Tags, jedoch enthalten diese ja bereits mein Problem Befehl.

Einer von Euch eine Idee, wie ich das Lösen könnte?

Micha