#!/usr/local/bin/perl # 画像一括表示HTML生成スクリプト Ver.1.00(2001/02/12) # byすらむどらごん(isobe@cx.airnet.ne.jp) # http://www4.airnet.ne.jp/isobe/soft/imghtml.pl # どっかのWEBサーバに置かれている、連番で名前がついてる # (gazou000.jpg〜gazou123.jpgみたいな感じに) # 画像ファイルを一括して表示するHTML文書を生成するPerlスクリプト。 # 0から、標準入力で読み込んだ値までのファイルを表示するHTML文書を # 決められた画像分に区切って、いくつかのファイルにして、 # スクリプトがあるディレクトリに生成します。 # (ファイル名はimg000.html、img020.htmlみたいな感じに) # 使い方は、「echo | ./imghtml.pl」か、「echo 123 | perl imghtml.pl」 # のようになるかな。 # 「#!/usr/local/bin/perl」のところと、 # 下の8つのパラメータの初期値を、環境や目的に合わせて書き換えてください。 # 画像の置き場所のURL $basehref="http://www4.airnet.ne.jp/isobe/altron/"; # 画像の名前(数字の前まで) $prefix = "aryol"; # 画像の拡張子 $postfix = ".jpg"; # 出力ファイルの名前(数字の前まで) $fprefix = "img"; # 出力ファイルの拡張子 $fpostfix = ".html"; # 一度に出力する画像数 $num = 20; # 数字のフォーマット # ファイル名の連番の数字部分の頭に0がつかない場合は、そのまま。 # img01.jpgのように、頭に0がついて2桁になる場合は、「%d」を「%02d」に、 # img001.jpgのように、頭に0がついて3桁になる場合は、「%d」を「%03d」にしてください。 $num_fmt = '%d'; # ここからプログラム本体 # 標準入力から、終わりの数を読み込む。 $end = <>; $end += 1; # 出力ファイル名のフォーマット $file_fmt = sprintf("%s%s%s", $fprefix, $num_fmt, $fpostfix); # HTMLファイルのタイトルのフォーマット $title_fmt = sprintf("Download %s%s%s - %s%s%s\n", $prefix, $num_fmt, $postfix,$prefix, $num_fmt, $postfix); # 画像ファイルの名前のフォーマット $img_fmt = sprintf("
\n", $prefix, $num_fmt, $postfix); $count = 0; while($count < $end) { $IMG_FILE = sprintf($file_fmt, $count); open(IMG_FILE ,">$IMG_FILE"); print IMG_FILE "\n"; printf(IMG_FILE $title_fmt, $count, ($count < ($end - $num)) ? ($count + $num - 1) : ($end - 1)); print IMG_FILE "\n"; print IMG_FILE "\n"; for ($i = 0; (($i < $num) && ($count < $end)); $i++) { printf(IMG_FILE $img_fmt, $count); $count++; } print IMG_FILE "\n"; close(IMG_FILE); }