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