1

以下のコードから MySQL を使用して iframe タグを削除するにはどうすればよいですか?

Hai, lasa-ma in lumea mea
Du-te nu ma astepta, pa-pa, pa-pa, pa-pa
Crede-ma-i mai bine asa
Poate ne intalnim candva, pa-pa, pa-pa, pa-pa</pre>
<pre width="80"></pre>
<iframe src="http://www.youtube.com/embed/GRXJuctr7Hk?feature=player_embedded" frameborder="0" width="640" height="360"></iframe>

私は使っている:

update wp_posts set post_content = REPLACE (post_content, '<iframe src="http://www.youtube.com/embed/','');

しかし、すべての iframe タグを削除したいです。PHPでは正規表現を使用して動作しますが、SQLではこれを行う方法がわかりません。

私の悪い英語で申し訳ありません....

4

1 に答える 1

1

これは簡単で汚い解決策であることに注意してください。ただし、文字列に iframe タグが最大で 1 つしかない場合は、次のようなものを使用できます。

UPDATE
  wp_posts
SET
  post_content =
  CONCAT(
    SUBSTRING_INDEX(post_content , '<iframe', 1),
    SUBSTRING_INDEX(post_content , '</iframe>', -1)
  )

最初の SUBSTRING_INDEX は<iframe文字列の左側のすべてを返し、2 番目の SUBSTRING_INDEX は文字列の右側のすべてを返し</iframe>ます。

複数の iframe がある場合、これは機能しません。

于 2013-04-08T16:26:05.650 に答える