#!/usr/bin/perl #libwww-perlを使うための呪文。 use LWP::Simple; #getで指定した部分を取り込む。%codeになってる部分はデコードする。余計な物はとる。 $url = $ENV{QUERY_STRING}; $url =~ s/%(..)/pack("C",hex($1))/eg; $url =~ s/^url=//; $url = "http://www.ottosei.com" if $url eq ""; unless($url =~ m|^http://|){ $url = "http://".$url; } my ( $protocol, # プロトコル( http 固定 ) $host, # ホスト名 $port, # ポート番号 $path, # パス $file, # ファイル $fragment # フラグ又は CGI の GET データ ); if($url=~m@^http://([^:/]*)?(:(\d+))?(/([^/]+/)*)?([^/#\?]*)?([#\?](.*))?$@){ ( $protocol, $host, $port, $path, $file, $fragment )=( 'http', $1, $3, $4, $6, $7 ); } if($path eq ""){$path = "/"} #ここで元原稿を取り込む。 $doc = get $url; #SJIS,JIS,EUC -> SJIS。文字コードは何でもかんでもS_JISにしちゃう。ユニコードにしたほうがいいような気もするけど、まあいいよね多分。 use Jcode ; $doc = jcode($doc)->h2z->sjis; #$doc =~ s/\r\n/\n/g; # Win→Unix ここらへん別にいらないけど歴史的事情で #$doc =~ s/\r/\n/g; # Mac→Unix はいってます。消しても全然かまわない。 $doc =~ s/[\n\r]//g; #↑改行は全部とってしまう。そうしたほうがあとの記述がラクだったのね。 #センター揃えは鬱陶しいので排除。 $doc =~ s|?center>||gi; $doc =~ s|align=\"?center\"?||gi; $doc =~ s|align=\'?center\'?||gi; #リンクのパスの書き換え。 $ENV{REQUEST_URI} =~ s/\?.*//; $doc =~ s|href=\"http|href=\"http://$ENV{HTTP_HOST}$ENV{REQUEST_URI}?http|gi; $doc =~ s|href=\"(?!http)|href=\"http://$ENV{HTTP_HOST}$ENV{REQUEST_URI}?http://$host$port$path|gi; #絵のパスをかえる。 $doc =~ s|src\s*=\s*\"http|src=\"http|gi; $doc =~ s|src\s*=\s*\"(?!http)|src=\"http://$host$port$path|gi; #$doc =~ s|margin-right|margin-left|gi; $doc =~ s|align=\"?right\"?|align=\"left\"|gi; #タイトルを少しだけいぢるため元のタイトルをとりこんでおく。 if ($doc =~ /