удалить тег, но сохранить строку между тегом в php

У меня есть файл, который получает контент с моего другого сайта. Это много:

<script> [random] string 1 </script> <script> [random] string 2 </script> .... <script> [random] string n </script> <script type="text/javascript"> must keeping script </script> <script type=text/javascript'> must keeping script </script> 

Я хочу REMOVE <script> и </script> но KEEP контент между ними «[random] string …» с использованием PHP.

Примечание: str_replace может удалить их, но может сделать другие скрипты <script type="text/javascript">must keeping</script> и <script type='text/javascript'>must keeping</script> . Он потеряет тег </script> должен содержать скрипт

Спасибо за помощь

// РЕШЕННО:

 $content = preg_replace('/(<script>)(.*?)(<\/script>)/s', '$2', $content); 

В любом случае, спасибо за помощь

Related of "удалить тег, но сохранить строку между тегом в php"

Попробуй это

 $content = " <script> [random] string 1 </script> <script> [random] string 2 </script> .... <script> [random] string n </script> "; $content = str_replace(array("<script>", "</script>"), "", $content); 

EDIT: Поскольку вы хотите избавиться от <script></script> и в то же время сохранить <script type="text/javascript"></script> и потому что использование regexp для решения подобных проблем – плохая идея затем попытайтесь использовать DOMDocument следующим образом:

 $dom = new DOMDocument(); $content = " <script> [random] string 1 </script> <script> [random] string 2 </script> .... <script> [random] string n </script> <script type='text/javascript'> must keeping script </script> <script type='text/javascript'> must keeping script </script> "; $dom->loadHTML($content); $scripts = $dom->getElementsByTagName('script'); foreach ($scripts as $script) { if (!$script->hasAttributes()) { echo $script->nodeValue . "<br>"; } } 

Это приведет к выводу:

[случайная] строка 1
[случайная] строка 2
[случайная] строка n

 <?php $text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>'; echo strip_tags($text); ?> 

для получения дополнительной информации о стрип-тегах см. http://php.net/manual/en/function.strip-tags.php

Если содержимое имеет строковый тип, вы можете использовать str-replace или str-ireplace

Затем попробуйте функцию strip_tags http://php.net/manual/en/function.strip-tags.php ?

если файл test.txt, используйте этот код

 <?php $myFile = "test.txt"; $fh = fopen($myFile, 'r'); $theData = fread($fh, 5000); echo str_replace("</script>","",str_replace("<script>","",$theData)); fclose($fh); ?>