- 2007-06-22 (金) 13:31
- php
今、phpを使って、不特定多数のユーザーが入力するフォームを製作中。
htmlタグは有効にしたいのですが、scriptとかiframeとか使って欲しくないタグもあるわけです。
phpの関数strip_tagsでもタグを取り除くことは可能なんですが、取り除かないタグを全て指定しなきゃいけないという面倒くささ。
なので、自分で作ってみました。
//禁止するタグを設定
$errtag[pair]=array('script','iframe','frame','form','textarea');//閉じるタグ
$errtag[independent]=array('meta','link','input');//閉じないタグ
//閉じる(ペアの)タグ用
foreach($errtag[pair] as $key => $value){
$match_pat='/<'.$value.'/';
$match_replace='/<'.$value.'[^>]*>((\\n|\\r|.)*)<\/'. $value .'>/';
$taglist.='<'.$value.'>';
if(preg_match($match_pat,$news)){
print$value.'タグは使えません。';//エラー表示
$news=preg_replace($match_replace,'',$news[body]);//取り除く作業
}
}
//閉じない(単体の)タグ用
foreach($errtag[independent] as $key => $value){
$match_pat='/<'.$value.'/';
$match_replace='/<'.$value.'[^>]*>/';
$taglist.='<'.$value.'>';
if(preg_match($match_pat,$news)){
print$value.'タグは使えません。';//エラー表示
$news=preg_replace($match_replace,'',$news[body]);//取り除く作業
}
}
もうちょっといじって、
まず、全部閉じないタグ用の判別処理→あまった閉じるタグを取り除くとすればもうちょっとよくなるかな。
関連記事
このブログを書いているsayjiroは最近会社を立ち上げました。小さな小さな会社ですが、一緒に働く仲間を探している今日この頃です。
自由に楽しく仕事をしつつWebを使って面白いことができればと思ってます。
募集している人物像:向上心がある・Webともの作りが好き(ある程度経験があると嬉しいですが、未経験でもやる気があれば可です)
お仕事内容:Web周り全般。サイト制作やデザイン、システム構築やiPhoneアプリ開発などいろいろです。
働く形態:その人に合わせて応相談
→興味がございましたらtwitterやこちらからお気軽にご連絡ください!
- 次の記事: WordPressのタイトルを変更してSEO対策をしてみる
- 前の記事: HTML上で画像を等倍縮小する
コメント:0
トラックバック:0
- この記事のトラックバックURL
- http://sj6.org/%e7%89%b9%e5%ae%9a%e3%81%ae%e3%82%bf%e3%82%b0%e3%82%92%e6%96%87%e5%ad%97%e5%88%97%e5%86%85%e3%81%8b%e3%82%89%e5%8f%96%e3%82%8a%e9%99%a4%e3%81%8f/trackback/



