在php中打包一个对象 [英] pack an object in php

查看:64
本文介绍了在php中打包一个对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在php中打包一个对象并通过udp发送?

i有一个包含6个属性的数据包类:

  / *   * @var 32int * /  
private $头信息长度;
/ * * @var 32int * /
private $ highSessionID ;
/ * * @var 32int * /
private $ lowSessionID ;
/ * * @var array(char)* /
private $签名;
/ * * @var 32int * /
private $ comandID ;
/ * * @var 32int * /
private $ dataSize ;





i尝试了一个简单的客户端 - 服务器应用程序,它通过udp发送字符串但是我想发送一个具有不同类型数据的对象



已编辑:我使用了包和序列化函数,它们非常有用:)但我还有一个问题:



我在php.net上阅读手册,但我不明白如何打包不同类型的数据。我试过这个:

  $ n  = ord('   a'); 
$ buf = pack(' IS' ,2亿,$ N);

$ array = unpack(' I / S',$ buf);
foreach ($ array as $ key => $ value)
echo \ $ array [$ key] = $ value < br> \ n ;





输出:

 $ array [1 ] =  97  <   br  >  





为什么200000000不打印?我该如何修复代码?



thx。

解决方案

headerSize ;
/ * * @var 32int * /
private

highSessionID ;
/ * * @var 32int * /
private

lowSessionID ;
/ * * @var array(char)* /
private

how can i pack an object in php and send it over udp?
i have a packet class that has 6 propertis :

/** @var 32int  */
        private $headerSize;
        /** @var 32int  */
        private $highSessionID;
        /** @var 32int  */
        private $lowSessionID;
        /** @var array (char)  */
        private $signature;
         /** @var 32int  */
        private $comandID;
         /** @var 32int  */
        private $dataSize;



i tried a simple client-server app that it send a string over udp but i want to send an object that have different type of data

Edited : I used pack and serialized functions , they were very helpful : ) but i have one more question :

I read manual in php.net but i did not understand how to pack different type of data . i tried this :

$n = ord('a');
 $buf =  pack('IS',200000000,$n);

 $array = unpack('I/S', $buf);
 foreach ($array as $key => $value)
    echo "\$array[$key] = ". $value ."<br>\n";



output :

$array[1] = 97<br>



why 200000000 was not print ? how can i fix the code?

thx.

解决方案

headerSize; /** @var 32int */ private


highSessionID; /** @var 32int */ private


lowSessionID; /** @var array (char) */ private


这篇关于在php中打包一个对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆