ファイル拡張子の検証するためのモジュール。
333333r5t6]y [fgggggggptyulk6,6絵rr6ん@w4
以下のファイルをダウンロードしてください。
展開すると、次のようなファイル構成が現れます。
File/
+-- Extension/
+-- Validate.pm
これを、Perlのモジュール検索パスの中においてください。
以下のようにします。
use File::Extension::Validate;
my $file = 'file1.tar';
if (File::Extension::Validate->validate($file) == 0) {
print "$file has invalid extension!";
if (my $ext = File::Extension::Validate->suggest($file)) {
print "'$ext' is my suggestion.";
}
}
validateはファイルの先頭部が、拡張子に対して妥当なヘッダになっているかを確認します。 suggestは、逆にファイルの先頭部から、妥当な拡張子を調べます。 ただし、先頭部のほとんどの場合ごく一部を見てチェックをしますので、suggestの精度はあまり当てにならないレベルです。
File::Extension::Validateは、validate_extension、suggest_extensionの二つのメソッドをエクスポートできます。これは非OO的に、関数のように使えるメソッドです。 エクスポート対象は、":all"タグを指定すればどちらも有効になります。
use File::Extension::Validate qw(:all);
my $file = 'file1.tar';
if (&validate_extension($file) == 0) {
print "$file has invalid extension!";
if (my $ext = &suggest_extension($file)) {
print "'$ext' is my suggestion.";
}
}
File::Extension::Validate 0.04版は以下のファイル形式・拡張子に対応しています。
| 文書 | doc、xls、ppt(※1)、pdf |
| 画像 | bmp、gif、jpg/jpeg、mng、pcd、png、psd、ppm、tif、xbm、xpm、swf |
| 動画、音楽 | asf/wmv、ogm |
| 圧縮ファイル | bz2/tbz、cab、gca、gz/tgz、ish、lzh、rar、sit、tar、yz1、zip |
おそらくもっと多くの形式に対応する必要があるでしょう。 ファイル形式の判定方法についてご存知のものがあれば、ぜひお教えください。
※1 : doc、xls、pptは共通の文字列をファイル先頭に持つようです。このため、File::Extension::Validateではこれらの区別はできていません。
このモジュールのコンセプトと、画像ファイルの形式判定のための正規表現はImage::Sizeモジュールによります。作成者およびコントリビュータ他の方々に心より感謝いたします。
このモジュールを作成するきっかけになった、Wikiへの警鐘を鳴らされたIPA、JVNそのほかの関係者の方々に心より感謝いたします。
コメントスパムがひどいためこのページのコメント欄を削除しました。コメントしたい方は暫定的に「掲示板」のページへお願いいたします。