PHPでserializeされた文字列をPerlでunserialize

最終更新日時:2011-07-06 16:06:26
PHP Perl

概要


PHPのシリアライズ手段として、serialize()/unserialize() がよく使われます。
現在では JSON 等の一般化されたシリアライズ方式もありますが、PHPでは手軽に使うことが出来る serialize() でシリアライズされることも多いでしょう。
その PHP の serialize() でシリアライズされた文字列を Perl で読み込み、Perl の変数に落とし込む方法を紹介します。

PHP::Serialization


PHP::Serialization というモジュールを使うことにより、PHPの serialize()/unserialize() と同じように処理することが可能となります。
PHP::Serialization は CPAN から取得可能です。

使い方は use PHP::Serialization すると、serialize()/unserialize() が使えるようになるという非常に簡単な使い方なので、割愛します(^_^;

しかし、私が使ってみた経験では、PHP で serialize した文字列を PHP::Serialization で unserialize した際にエラーが出ることがあったため、次に紹介する方法をメインで使っています。

serialize.pm


以下のサイトで serialize.pm というモジュールが配布されています。
PHP serialize and unserialize in Perl

こちらも使い方は簡単。
こんな感じで、単に serialize()/unserialize() するだけです。

 use serialize;
 my $string1 = serialize($data);
 my $string2 = serialize(\%data);
 my $string3 = serialize(\@data);
 
 my $data = unserialize($string);


お問い合わせは 掲示板 にて。