在php中打包一个对象 [英] pack an object in 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屋!