4

私は、次のタイプのエンコードされたデータを mysql データベースの BLOB タイプの列に格納するプロジェクトに取り組んでいます。いろいろ聞いてみたところ、これは Bencode だと言われましたが、オンラインで見たところ、標準の Bencode ではないようです。

ベンコードのウィキ

http://en.wikipedia.org/wiki/ベンコード

エンコードされたデータの例

a:11:{i:0;a:3:{s:11:"question_id";s:2:"46";s:6:"answer";s:1:"2";s:7:"correct";b:1;}i:1;a:3:{s:11:"question_id";s:2:"45";s:6:"answer";s:1:"2";s:7:"correct";b:0;}i:2;a:3:{s:11:"question_id";s:2:"44";s:6:"answer";s:1:"2";s:7:"correct";b:0;}i:3;a:3:{s:11:"question_id";s:2:"43";s:6:"answer";s:1:"1";s:7:"correct";b:0;}i:4;a:3:{s:11:"question_id";s:2:"42";s:6:"answer";s:1:"3";s:7:"correct";b:0;}i:5;a:3:{s:11:"question_id";s:2:"41";s:6:"answer";s:1:"2";s:7:"correct";b:0;}i:6;a:3:{s:11:"question_id";s:2:"40";s:6:"answer";s:1:"0";s:7:"correct";b:1;}i:7;a:3:{s:11:"question_id";s:2:"39";s:6:"answer";s:1:"0";s:7:"correct";b:0;}i:8;a:3:{s:11:"question_id";s:2:"38";s:6:"answer";s:1:"1";s:7:"correct";b:1;}i:9;a:3:{s:11:"question_id";s:2:"37";s:6:"answer";s:1:"3";s:7:"correct";b:0;}i:10;a:3:{s:11:"question_id";s:2:"36";s:6:"answer";s:1:"2";s:7:"correct";b:1;}}

これまでに気づいたこと

エンコーディングは、Bencode と同様の文字と整数を使用して、さまざまな種類のデータを記述していることに気付きました。

例: s:11:"question_id";

s「string」の略で11、string の長さを定義していると思いますquestion_id。また、データの先頭 ( a:11:) は長さ 11 の配列を記述しているように見えます。これは標準の Bencode に似ていますが、Bencode が使用する標準の構文を使用していないようです。

これがどのタイプのエンコーディングであるか、誰にも分かりますか? これは非標準の Bencode 形式ですか、それともまったく別のものですか? PHP または Python でパーサーを探していますが、エンコーディングの名前があれば検索に役立ちます。

4

1 に答える 1

6

これはPHPのシリアル化形式であり、を使用してシリアル化することはできませんunserializehttp://codepad.org/l7Z9cITo
を参照してください。

于 2012-09-07T16:02:13.380 に答える