方法1.PHPによるシェルコマンドの作成
cat $1 | php -r 'while(($line=fgets(STDIN)) !== FALSE) echo htmlspecialchars($line);'
php5.4を前提にしたコードになっていたので、少し修正しました。5.4の場合はHTML5などに対応したオプションフラグが容易されているため、php5.4環境が前提ならばhtmlspecialcharsにフラグを追加するとよいかもしれません。
方法2.Perlによるシェルコマンドの作成
cat $1 | perl -MHTML::Entities -le 'while(<>) {print encode_entities($_);}'
なお、このコマンドを動作させるには、自分の環境(MacOSX)では root権限で下記を実行してライブラリを追加する必要がありました。
cpan install HTML::Entities
方法3.GNU recodeコマンドを使う
あまり聞き慣れないコマンドですが、代表的なLinuxディストリビューションのaptやyumパッケージには含まれているようです。様々なテキストコードの変換が可能なので、勉強しておくと結構役立つかもしれません。recodeのインストール
recodeはroot権限にて下記を実行してインストールできます。
yum install recode
orapt-get install recode
reocodeによるHTMLサニタイズ例
cat ファイル名 | recode utf8..html
utf8のところは文字エンコーディングによって変える必要があります。
0 件のコメント:
コメントを投稿