Как удалить блоки (//<![CDATA[ , //]]> );  теги внутри элемента script . 
 <script type="text/javascript"> //<![CDATA[ var l=new Array(); .......................... .......................... //]]> </script> 
  Похоже, это можно сделать с помощью preg_replace() но havent нашел решение, которое работает для меня. 
Какое регулярное выражение я бы использовал?
Следующее regex сделает это …
 $removed = preg_replace('/^\s*\/\/<!\[CDATA\[([\s\S]*)\/\/\]\]>\s*\z/', '$1', $scriptText); 
CodePad .
Вам не нужно регулярное выражение для статической строки.
Замените эти части текстов ничем:
 $string = str_replace("//<![CDATA[","",$string); $string = str_replace("//]]>","",$string); 
Если вы должны…
 $s = preg_replace('~//<!\[CDATA\[\s*|\s*//\]\]>~', '', $s); 
Это приведет к удалению всей строки, содержащей каждый тег, без испорчения вложенного кода.
Вы также можете попробовать,
 $s=str_replace(array("//<![CDATA[","//]]>"),"",$s); 
  используйте str_replace() вместо preg_replace() намного проще 
 $var = str_replace('<![CDATA[', '', $var); $var = str_replace(']]','',$var); echo $var; 
  Я использую это, чтобы удалить <![CDATA[]] но в одной строке теперь работает для меня, не знаю, если для нескольких строк. 
 preg_match_all('/CDATA\[(.*?)\]/', $your_string_before_this, $datas); $string_result_after_this = $datas[1][0]; 
 $nodeText = '<![CDATA[some text]]>'; $text = removeCdataFormat($nodeText); public function removeCdataFormat($nodeText) { $regex_replace = array('',''); $regex_patterns = array( '/<!\[CDATA\[/', '/\]\]>/' ); return trim(preg_replace($regex_patterns, $regex_replace, $nodeText)); }