我有从其他网站获取内容的文件。包括很多:
<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>
我想删除<script>
和</script>
但是使用PHP将它们之间的内容保存为“[random] string ...”。
注意: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);
无论如何,谢谢你的帮助
答案 0 :(得分:5)
<?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
答案 1 :(得分:3)
试试这个
$content = "
<script>
[random] string 1
</script>
<script>
[random] string 2
</script>
....
<script>
[random] string n
</script>
";
$content = str_replace(array("<script>", "</script>"), "", $content);
编辑:
既然您想摆脱<script></script>
并同时保留<script type="text/javascript"></script>
,并且因为使用正则表达式来解决此类问题is a bad idea,那么请尝试使用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
答案 2 :(得分:0)
如果内容属于字符串类型,则可以使用str-replace或str-ireplace
答案 3 :(得分:0)
然后尝试strip_tags函数http://php.net/manual/en/function.strip-tags.php?
答案 4 :(得分:0)
如果文件是test.txt,请使用此代码
<?php
$myFile = "test.txt";
$fh = fopen($myFile, 'r');
$theData = fread($fh, 5000);
echo str_replace("</script>","",str_replace("<script>","",$theData));
fclose($fh);
?>