我正在尝试使用str_replace
将所有iframe替换为我自己的内容。我相信我可以使用正则表达式,但不确定如何删除 iframe 标签中的所有内容。
由于我不太确定如何实现这一点,以下是我一直在使用的内容。但它只是用什么替换"iframe",所以当页面加载到任何 iframe 加载的地方时,现在只会显示如果 iframe 正确解析时会加载的 URL。
$toremove = str_replace("iframe", "", $toremove);
下面是使用上述代码时加载的内容而不是 iframe 的示例输出。你可以看到,只是没有"iframe"这个词的整个iframe破坏了iframe(这比显示它更好)
< src="http://cdn2.adexprt.com/exo_na/center.html" width="728" height="90" frameborder="0" scrolling="no">
但是现在我想完全删除iframe及其所有内容,以便我可以将自己的内容放在它的位置,而不会显示旧的损坏代码。但是我不确定如何使用正则表达式编辑我的str_replace
,而不仅仅是工作"iframe"
<?php
$iframe='<iframe src="http://cdn2.adexprt.com/exo_na/center.html" width="728" height="90" frameborder="0" scrolling="no">
</iframe>';
$pattern = "#<iframe[^>]+>.*?</iframe>#is";
echo preg_replace($pattern, "", $iframe);
?>
str_replace不使用
正则表达式。请改用这个:
$str = preg_replace('/<iframe.*?>/', '', $str);
这将取代
<iframe something>
到空字符串
str_replace()
不支持正则表达式。你在preg_replace()
.您将需要一个类似于以下内容的正则表达式:
$html = preg_replace('/<iframe>.*<'/iframe>/is', '', $html);
虽然,由于这是 HTML,您应该避免正则表达式并使用 HTML 解析器。
添加到最后一个答案之外,这是一个更有效的正则表达式,用于替换多个 iframe。
$html = preg_replace('/(<iframe.+">)/is', '', $html);