6

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」だけでなく、正規表現で自分を編集する方法がわかりません

4

4 に答える 4

2

str_replace は正規表現を使用しません。代わりにこれを使用してください:

$str = preg_replace('/<iframe.*?>/', '', $str);

これは置き換えます

<iframe something>

空の文字列に

于 2013-09-06T08:40:48.573 に答える
1

str_replace()正規表現をサポートしていません。あなたは の後preg_replace()です。次のような正規表現が必要になります。

$html = preg_replace('/<iframe>.*<\/iframe>/is', '', $html);

ただし、これは HTML であるため、正規表現を避け、代わりに HTML パーサーを使用する必要があります。

于 2013-09-06T08:52:02.347 に答える
-1

最後の回答に加えて、これは複数の iframe を置き換えるためのより効率的な正規表現です。

$html = preg_replace('/(<iframe.+">)/is', '', $html);
于 2015-04-13T20:18:53.083 に答える