指定されたURLのウェブページを読み込んで、
中で何かをしてそのまま表示するという
一連の処理を実現するための CGI のテンプレート。
言語は Perl。
#!/usr/bin/perl
use strict;
use warnings;
use Encode;
use CGI;
use URI;
use HTML::Template;
use LWP::Simple;
use utf8;
my $q = new CGI;
my $url = $q->param('url') || "";
my $cont = $url ? (get($url) || "") : "";
my ($page_charset, $page_encoding) = ("UTF-8", "utf8");
if ($cont =~ /charset=(EUC-JP|Shift_JIS)/i) {
$page_charset = $1;
$page_encoding = "euc-jp" if $page_charset =~ /EUC-JP/i;
$page_encoding = "shiftjis" if $page_charset =~ /Shift_JIS/i;
}
print $q->header(-charset => $page_charset);
if ($cont eq "") {
print qq(<html><head><title>wrapper</title></head>
<body><form method="get" target="_blank">
<input type="input" name="url" size="80">
<input type="submit"></form></body></html>\n);
exit;
}
my $u = URI->new($url)->host_port;
$cont =~ s{(<\s*head\s*>)}{$1<base href="http://$u">}i;
$cont = decode($page_encoding, $cont);
# do something vvv
$cont =~ tr/ぁ-ん/ァ-ン/;
# do something ^^^
print encode($page_encoding, $cont);
上記スクリプトは、
ページ中のひらがなをカタカナに変換しています。
その部分を処理したい内容に書き換えればOK。
なお、charset まわりはいい加減です。
仮置き:テストとして下記URLに置いています(そのうち削除)
http://chalow.net/misc/wrapper.cgi
http://chalow.net/misc/wrapper.cgi?url=http%3A%2F%2Fchalow.net
(例↑)
念のため書いておきますけど、
このスクリプトは、Perlプログラマーの
規範となるような超スタンダードなものではありません。
なので、
「このコードを真に受けて
クソのようなコードを量産する人が出ないように
警告するブログ記事をかかなければ!」
などと意気込む必要はないです>ギークな方々。
おかしい点があったら、
ブログやSBSで淡々と指摘してい頂けると幸いです。
ref.
- [を] Perlでカタカナひらがな変換[2006-08-07-5]