C#実装PHP関数serialize()とunserialize()
3039 ワード
日常開発では,.netとphpのような異なるプラットフォーム間の相互通信が一般的である.Webserviceを使用しているかもしれませんが、相手から渡されたデータを処理する必要があるかもしれません.XML,Jsonのようないくつかの標準データフォーマットを使用すると、各方面で類似の実装があるため、処理が容易になります.しかし、このデータフォーマットは主流ではありません.どうすればいいですか.
たとえば、.netプラットフォームでPHP関数serialize()をシーケンス化した文字列を処理する必要があります.また、PHP関数unserialize()でC#シーケンス化されたオブジェクトを逆シーケンス化したい場合もあります.では、この時、Sharp Serialization Libraryはあなたを助けることができます.
こんにちは、くだらない話が多いですね.次の本文から始めます.
Sharp Serialization Libraryの紹介
Sharp Serialization Library serializes and deserializes primitives, ArrayLists and Hashtables, compatible with PHP serialize(). Use it for SOAP/Web Services communications where Hashtables cannot be passed otherwise, or saving to a file readable by php.
Sharp Serialization Library機能
逆シーケンス化PHP関数serialize()シーケンス化された文字列.オブジェクトをPHP関数unserialize()で使用可能な文字列にシーケンス化します.
Sharp Serialization Libraryインスタンス
Sharp Serialization Libraryダウンロード
プロジェクト公式住所http://csphpserial.sourceforge.net/
Unixタイムスタンプの取得にC#を添付
この文書は、http://endless.im原文アドレス:http://endless.im/archives/csharp-sharpserializationlibrary-php-serialize.htmlに同時に発行されます.
たとえば、.netプラットフォームでPHP関数serialize()をシーケンス化した文字列を処理する必要があります.また、PHP関数unserialize()でC#シーケンス化されたオブジェクトを逆シーケンス化したい場合もあります.では、この時、Sharp Serialization Libraryはあなたを助けることができます.
こんにちは、くだらない話が多いですね.次の本文から始めます.
Sharp Serialization Libraryの紹介
Sharp Serialization Library serializes and deserializes primitives, ArrayLists and Hashtables, compatible with PHP serialize(). Use it for SOAP/Web Services communications where Hashtables cannot be passed otherwise, or saving to a file readable by php.
Sharp Serialization Library機能
逆シーケンス化PHP関数serialize()シーケンス化された文字列.オブジェクトをPHP関数unserialize()で使用可能な文字列にシーケンス化します.
Sharp Serialization Libraryインスタンス
// http://endless.im
// http://endless.im/archives/csharp-sharpserializationlibrary-php-serialize.html
//C#
//Str PHP serialize()
// a:5:{i:0;a:8:{i:0;s:1:"0";s:1:"u";s:1:"0";i:1;s:1:...
ArrayList al = (ArrayList)serializer.Deserialize(Str);
for (int i = 0; i < al.Count; i++)
{
Hashtable ht = (Hashtable)al[i];
//do something
}
//C#
ArrayList al = (ArrayList)serializer.Deserialize(Str);
for (int i = 0; i < al.Count; i++)
{
Hashtable ht = (Hashtable)al[i];
//do something
}
//C# PHP unserialize()
Hashtable ht = new Hashtable();
//single string
ht[this.ssKeyTextBox.Text] = this.ssValueTextBox.Text;
ArrayList al = new ArrayList(3);
al.Add(this.alValue1TextBox.Text);
al.Add(this.alValue2TextBox.Text);
al.Add(this.alValue3TextBox.Text);
//ArrayList
ht[this.alKeyTextBox.Text] = al;
int i = Int32.Parse(this.intValueTextBox.Text);
ht[this.intKeyTextBox.Text] = i;//int
//Serialize the Hashtable
string stSerializedText = this.serializer.Serialize(ht);
this.serializeTextBox.Text = stSerializedText;
Sharp Serialization Libraryダウンロード
プロジェクト公式住所http://csphpserial.sourceforge.net/
Unixタイムスタンプの取得にC#を添付
//
DateTime dtstart = new DateTime(1970, 1, 1);
dtstart =TimeZone.CurrentTimeZone.ToLocalTime(dtstart);
TimeSpan syncDate = syncDate.Subtract(dtstart);
string unixDate = syncDate.Ticks.ToString();
unixDate = unixDate .Substring(0, unixDate.Length - 7);
この文書は、http://endless.im原文アドレス:http://endless.im/archives/csharp-sharpserializationlibrary-php-serialize.htmlに同時に発行されます.