人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

phpで、strig_tagsでタグ除去を試みました。
http://q.hatena.ne.jp/1185604181

うまくいったのですが、
javascriptの「タグ」だけが除去され、
スクリプトの部分が残ってしまいます。

例えば、下記の場合、

<script language="javascript" type="text/javascript">
function a(bb,cc,dd){
...
}
</script>

タグ以外の

function a(bb,cc,dd){
...
}

は除去されずに残ってしまいます。
この様子だと、恐らくCSSの内部記述しているのも残りそうな予感です。

これらの除去方法はあるのでしょうか?


特定のhtmlからタグを除去し、
特定のタグ(例えば<A><B>を属性つき)を残す、
ということをstrip_tagsで試みています。

特にstrip_tagsにこだわりがあるわけではないので他の方法も含めて、
phpで実現のために参考になるURLや、
function形式で参考コードをお願いします。

●質問者: onigirin
●カテゴリ:ウェブ制作
✍キーワード:BB CC CSS DD HTML
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● GEN111
●50ポイント ベストアンサー

例えばこんなのを strip_tags を呼ぶ前に噛ませるとかですかね。

function remove_specific_elements($html) {
 $html = preg_replace('!<style.*?>.*?</style.*?>!is', '', $html) ;
 $html = preg_replace('!<script.*?>.*?</script.*?>!is', '', $html) ;
 return $html ;
}

$str = '
<style type="text/css">
div {color : black}
</style>
<div>Hello</div>
<script type="text/javascript">
alert("hoge");
</script>
<p>World</p>
<script type="text/javascript">
document.write("fuga");
</script>
';

echo strip_tags(remove_specific_elements($str)) ;

$str は HTML としては謎ですが、まあサンプルなので。

◎質問者からの返答

どうもありがとうございます。

試してみたところ、ズバリ解決できました!

どうもありがとうございました。

正規表現の置換、使えますね。


2 ● tenman
●20ポイント

http://phpspot.net/php/man/php/function.preg-replace.html

の例とか参考になりませんか

◎質問者からの返答

どうもありがとうございます。

正規表現での置換ですね。

いろいろと重宝しそうです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ