2010年2月15日

[PHP-users 35003] Re:htmlタグの<と単なる<の区別

 丹羽です。

お手を煩わせてしまいましたが、とても参考になりました。
いろいろと検討してみたいと思います。
タグを取り除くだけでも自分にとってはかなりの進歩です。

>うすきです。
>

>> うまい正規表現を考えれば、タグをとりのぞくことができるでしょうか?
>
>ちょっと作ってみました。
>
>$test = '<table summary="2>1" id="2>1" target="2>1">';
>// ↓受け付けるタグ
>if (preg_match('/<(a|table)((?:\s+[\w\-]+="[^"]*")*)>/', $test, $mch)) {
> $nodeName = $mch[1];
> $attributes = isset($mch[2])? $mch[2] : "";
> $attributes = preg_replace_callback(
> '/\s+(\w+)="([^"]*)"/', 'atrconv', $attributes
> );
>
> // テスト出力
> echo '<pre>';
> echo htmlspecialchars("<$nodeName$attributes>");
> echo '</pre>';
>}
>function atrconv($mch) {
> // ← 許可するタグと属性のチェック処理・サニタイズ
> return " ". $mch[1].'="'. htmlspecialchars($mch[2]) .'"';
>}
>
>// 結果
><table summary="2>1" id="2>1" target="2>1">
>
>HTML開きタグのみですが、こんな感じでブラッシュアップしていって、繰り返せ
>ばある程度までは簡単にいけるかも知れません。
_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3


投稿者 xml-rpc : 2010年2月15日 20:28
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/93331
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。