簡単漫画アップローダーを作る
過去の日記で宣言したとおり、新しいスクリプトに挑戦中です。
複数アップロード+Web漫画ビューア ComicFlashの自動設定というもの。
アップローダーにはSWFUploadを使用。付属のupload.phpがシンプルすぎる内容のため、これを使ってゴニョゴニョ。
とりあえず、
- 1回のアップロードで1作品とする
- 画像ファイルだけでなく必要な設定ファイルを必要な場所にコピーor生成
- アップされた画像は1.jpg、2.jpg…といった1からはじまる連番形式にしなければならない
- オプションの拡大機能などはこのさい考えない
とりあえず、フォルダ分け、必要ファイルコピーなどは出来ました!(renameやcopyコマンド使用)
あとはUPされたファイルを連番にするのと、設定ファイル(XML)を生成する、そしてできた漫画ビューアにリンクをはる、等です。
巷にあるWeb漫画のファイル名など見ても、たいがい連番になっていますので、昇順ソートして1.jpg,2.jpg...の形式にリネームすればいけますね!
<?php //拡張子はちゃんと判断しなきゃなんないけど今回はjpgで //拡張子 $ext = ".jpg"; //画像ファイル入ってるフォルダ $directory = "./pages/"; //scandir関数で中身を調べる(配列になる) $list = scandir($directory); //$iを配列の添字、$noを新しいファイル名にして、whileでリネーム $no = 1; $i = 2; while ($i <= count($list)-1) { rename($directory.$list[$i],$directory.$no.$ext); $no++; $i++; } //なんとか動いてます ?>
scandirという関数、php5から使えるそうです。
マニュアルより
<?php $dir = '/tmp'; $files1 = scandir($dir); $files2 = scandir($dir, 1); print_r($files1); print_r($files2); ?> 上の例の出力は、たとえば以下のようになります。 Array ( [0] => . [1] => .. [2] => bar.php [3] => foo.txt [4] => somedir ) Array ( [0] => somedir [1] => foo.txt [2] => bar.php [3] => .. [4] => . )
ファイル名の一覧を配列にしてくれるのですが、ディレクトリ自身(.とか..)を含んでしまうため添字を[2]からにしました。
もっとスマートなやり方あるんでしょうけど。
これで、ファイル名が何から始まっていても連番であれば正しくリネームされるはず…。