|
ファイルの内容を出力するCGIです。 動作例
ここを押すと、実行結果がわかります。↓ ソースコード
open して、ひたすら read します。
#!/usr/local/bin/perl
use CGI;
use strict;
my $FILENAME = "fread.cgi";
my $cgi = new CGI;
print $cgi->header, $cgi->start_html('Hex Dump');
print $cgi->h1("Dump of $FILENAME</h1>");
print "<p><table>\n<tr><th> 0</th>";
my ($i, $j);
for($i=1; $i<16; $i++) {
printf("<th>+%x</th>", $i);
}
print "<td> | </td></tr>\n";
my $dat;
if(open(DAT, $FILENAME)) {
while(read(DAT, $dat, 256) > 0) {
my @d = unpack('C*', $dat);
for($i=0; $i<=$#d; $i+=16) {
print "<tr>";
for($j=0; $j<16 && $i+$j<=$#d; $j++) {
printf("<td>%02x</td>", $d[$i+$j]);
}
print "<td></td>" x (16-$j) .
"<td align=\"center\">|</td>";
for($j=0; $j<16 && $i+$j<=$#d; $j++) {
print "<td>";
if($d[$i+$j] >= 0x20 && $d[$i+$j] < 0x7f) {
print $cgi->escapeHTML(
pack('C', $d[$i+$j]));
} else {
print ".";
}
print "</td>";
}
print "</tr>\n";
}
}
close DAT;
}
print "</table></p>\n";
print $cgi->end_html;
|
▼ 個人的宣伝
|