ISBN-10ISBN-13相互変換とハイフン編集をするjavascriptの生成実験その2
大分それっぽい感じになってきたので、途中経過がてら
#!/usr/bin/perl use lib '/home/natu-n/perl/lib/perl5/site_perl/5.8.8'; use lib '/home/natu-n/local/lib/perl5'; use strict; use warnings; use LWP::UserAgent; use JSON; $JSON::Pretty = 1; $JSON::Indent = 4; $JSON::Delimiter = 2; my $resp = LWP::UserAgent->new->get( 'http://www.isbn-international.org/converter/ranges.js'); $resp->is_success or die; my $tbl = []; my $js = $resp->content; my $i = 0; map { my $max = (split /-/)[1]; $tbl->[$i][0] = substr(("$1" . "$max" . "9999999999"), 0, 10); $tbl->[$i][1] = length($1); $tbl->[$i][2] = length($max); $i++; } split /;/, $3 while $js =~ /gi\.area(\d+)\.text="(.+)";\ngi\.area\d+\.pubrange="([\d\-;]+)";/g; print objToJson($tbl, {keysort => 1});
- とりあえず標準出力にJSONを吐くところ迄、実際には下記のJSもあわせて前後に吐かないとダメですがp
- 前
function tblMake(){ var _ranges = eval('(' +
-
- 後
+ ')'); flgTblMake = 1; _TblL = _ranges.length; }
- 特に変わらない部分を別ファイルにしておいて、このスクリプトの結果とマージするところ迄は明日暇なときに作ってみます
雑記
実際の命令がwhileより前の行というのがまだ馴染めない
あと、よくよく考えたらcgi版でデータとロジックを別ファイルにしたら、呼び出すたびに毎回データを読み込むので意味が無い事に気がついた