4月 04

Digest::MD5(Perlでmd5を利用する)

PHPには、md5()という標準関数が用意され、簡単にハッシュを作成することが出来ます。
例えば、「12345」という文字列のハッシュは「827ccb0eea8a706c4c34a16891f84e7b」となります。
しかし、Perlにはハッシュを作成できる標準関数はありません。
使用したDigest::MD5モジュールのバージョンは2.36でした。
Perlのバージョンが5.8であれば、インストールされています。

使い方

use Digest::MD5 qw/md5_hex/;
print md5_hex( 12345 );
my $md5 = md5_hex( 12345 );
print $md5;

PHPの場合

PHPには標準関数が用意されています。

$md5 = md5( 12345 );
echo $md5;

関連サイト

4月 03

Image::Magick::Thumbnail::Simple 0.12 原文

「翻訳」ではなく「原文」なのは、私が作ったモジュールだからです。
Image::Magick::Thumbnail::Simpleモジュールのバージョンは0.12です。

目次

名前

Image::Magick::Thumbnail::Simpleサムネイル画像を無駄なく簡単に作ります

構文

ファイルに出力

use Image::Magick::Thumbnail::Simple;
my $t = new Image::Magick::Thumbnail::Simple;
$t -> thumbnail(
  input  => 'input.jpg',
  output => 'output.jpg',
  size   => 128,
) or die $t -> error;

標準出力に出力

use Image::Magick::Thumbnail::Simple;
my $t = new Image::Magick::Thumbnail::Simple;
binmode STDOUT;
print "Content-type: image/jpegnn";
$t -> thumbnail(
  input  => 'input.jpg',
  output => 'jpg:-',
  size   => 128,
) or die $t -> error;

初期化のときに指定する場合

別に指定しないかぎり、以降全てに継承されます。


$t = new Image::Magick::Thumbnail::Simple(
  size    => 128,
  blur    => 0.8,
  quality => 80,
);

変更する場合

$t -> size( 128 );
$t -> blur( 0.8 );
$t -> quality( 80 );

個別に指定する場合

入力と出力は、個別にしか指定できません。


$t -> thumbnail(
  input   => 'input,jpg',
  output  => 'output.jpg',
  size    => 128,
  blur    => 0.8,
  quality => 80,
);

サムネイル画像の横幅

$width = $t -> width;

サムネイル画像の縦幅

$height = $t -> height;

説明

Image::Magickを使って、簡単にサムネイル画像を作成できます。
基本的な設定はImage::Magickと同じです。画像のリサイズの処理のみを扱います。
公開したバージョンは0.10です。
0.12では、説明の修正と、サムネイルのサイズを返すようになりました。

参照

Image::Magick

作者

Satoshi Ishikawa <cpan@penlabo.net>

Copyright (C) 2008 Satoshi Ishikawa

このライブラリはフリーソフトウェアです。
Perl自体と同じ条件で再配付、または変更することができます。
利用可能なPerlのバージョンは5.8.8、またはこれ以降のバージョンです。

更新履歴

2008-04-03
公開
1月 07

XML::Simple(PerlでXMLをパースする)

Ajaxへの熱が冷めはじめた昨今、しかしXMLファイルを扱う機会はあまり減りません。
使用したXML::Simpleモジュールのバージョンは2.18でした。
Perlのバージョンが5.8であれば、インストールされています。

使い方

my $xml = <<'XML';
<?xml version="1.0" encoding="UTF-8"?>
<urlset>
  <url>http://127.0.0.1/</url>
  <title>localhost</title>
  <copyright>Administrator</copyright>
</urlset>
XML
use XML::Simple;
my $xs = new XML::Simple();
my $parser = $xs -> XMLin( $xml );
my %parse = (
  'uri'       => $parser -> {'uri'},
  'title'     => $parser -> {'title'},
  'copyright' => $parser -> {'copyright'},
);
use utf8;
foreach my $key ( keys %parse ){
  utf8::encode( $parse{$key} );
  printf( "%s : %s\n", $key, $parse{$key} );
}

不具合

エンコードが正しく指定されていても、UTF-8以外であれば受け付けてくれません。

おわりに

結果の文字列にBOMを付けるという余計な事をするため、
utf8::encodeでBOMを除去する処理が必要になってしまいます。
スイッチをつけるなどして、選べるようにしてほしい。

更新履歴

2008-04-04
サイト移動に伴うHTMLの修正(旧URI:[廃止])
2008-01-07
公開
1月 07

LWP::Simple(PerlでWeb上のリソースを取得する)

お手軽に、Web上のリソースを取得しましょう。
使用したLWP::Simpleモジュールのバージョンは1.41でした。
Perlのバージョンが5.8であれば、インストールされています。

使い方

use LWP::Simple;
my $html = get( 'http://127.0.0.1/' );
print $html;

不具合

HTTPレスポンスコードが200以外の場合、プロセスが死ぬので注意。

PHPの場合

とってもお手軽な標準関数が用意されています。

$html = file_get_contents( 'http://127.0.0.1/' );
echo $html;

おわりに

レスポンスコードを返してくれても良いような気がします。

更新履歴

2008-04-04
サイト移動に伴うHTMLの修正(旧URI:[廃止])
2008-01-07
公開
1月 07

HTML::HeadParser(PerlでHTMLヘッダをパースする)

Webサイトのmetaタグを解析する必要が増えてきました。
いままでは、パターンマッチで一つずつ取り出していました。
モジュールが用意されているので、使ってみましょう。
使用したHTML::HeadParserモジュールのバージョンは2.22でした。
Perlのバージョンが5.8であれば、インストールされています。

使い方

use LWP::Simple;
my $html = get( 'http://127.0.0.1/' );
use HTML::HeadParser;
my $p = new HTML::HeadParser;
$p -> parse( $html );
my %parse = (
  'title'       => $p -> header( 'title'              ),
  'charset'     => $p -> header( 'content-type'       ),
  'copyright'   => $p -> header( 'x-meta-copyright'   ),
  'keywords'    => $p -> header( 'x-meta-keywords'    ),
  'description' => $p -> header( 'x-meta-description' ),
);
foreach my $key ( keys %parse ){
  printf( "%s : %s\n", $key, $parse{$key} );
}

不具合

XHTMLのソースを渡すとエラーでプロセスが落ちてしまうので、
HEADタグの中身のみを渡した方がいいでしょう。

おわりに

x-metaという使い方には、いまだに慣れません。
XHTMLに対応して、URIを直接指定したいですね。

更新履歴

2008-04-04
サイト移動に伴うHTMLの修正(旧URI:[廃止])

2008-01-07
公開
1月 04

おさわがせしました

正直なところ、機能の追加に追加で、1つ弄ると別のところに影響が出てしまうようです。
また、こちらの想定外の使い方をしていることもあるみたいで、バグと思って昨日を正常化しても、それが逆に改悪となってしまうようです。

クッキーによる設定の変更なども、いろいろ問題が発生してしまっているようでうまくいきません。
手元には、細かな修正と機能追加の行われたスクリプトがあるものの、使えない機能が出るようなので(こちらでは確認できなかったのですが)、不本意ではありますが、巻き戻しいたしました。
もっと機能を追加したいのですが、1つのスクリプトで改修するには限界と考えます。

また、いい方法が見つかったときには、手を加えたいと思いますが、
いまはこれが精一杯です。
すいませんでした。

12月 07

しっかりしろAmazon

先日、ネトゲアンテナのシステムメンテナンスを行っていました。
Amazonのアソシエイトをどうしようかとページをめくっていると・・・

いつのまにか、イメージのみで個別商品リンクが張れるようになっているではないか。
ふむふむ、タグはAタグで張れ、DOCTYPEにやさしい。画像は持ち帰ってくださいと。
これは使うしかないだろと、商品をちゃんと把握しているパンヤから修正を書けることにした。

ちょっと用事があってパソコンから離れて、Amazonに再ログインすると・・・
あれ?イメージのみがない?さっきのは幻?
いやいや、リンクは生きてるし間違いない。

自分の操作に問題があったのか、としばらく悩んでいたけれど、時間の無駄なのでAmazonに問い合わせることにした。
----------
Amazon.co.jpアソシエイト・プログラムにお問い合わせいただき、ありがとうござ
います。

誠に申し訳ございませんが、一時的に個別商品リンクの作成画面にて、掲載すべき予
定ではない機能が掲載されておりました。この表示についてはすでに削除されており
ます。このたびは、誤った機能を表示しており、大変ご迷惑をおかけいたしましたこ
とを、お詫びいたします。

その他にもご不明な点がございましたら、ご遠慮なくお問い合わせください。アソシ
エイト・プログラムをご利用いただき、ありがとうございます。
----------
な、なんだってー(AAry

どうしてくれるんだよ、イメージのみ専用にスクリプト修正し終わってるんですがorz

11月 29

ブログパーツこっそりテスト

rank表記がほしいということで、昨日こっそり追加してみた。
ラウンジで報告していないにもかかわらず、要望をもらった。

ぁあ、ちゃんと見てるんだなぁ、と。
作った意味はあったなぁ、と。
応えなきゃなぁ、と。


桂小枝風に読まないこと。

てなわけで、またちょっと弄ってみました。
評価よろしく~

11月 22

WCG ← ブログパーツのお知らせ

メンバー(個人)向けのブログパーツをちょっと前に作りました。
ここで公開

明日からの3連休で、もう一度調整します。

※改修予定項目
 → スタイルシートの整理
 → 利用者同士の交流を助ける、ウェブリング機能の実装

ちなみに、ブログじゃなくても、タグを貼り付ければ動きますよ。