hxp
2025-06-04 f4a514d5ac952110da846636ecbb9de951eaf3d2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php
namespace BufferOperate;
#´´½¨ÈÕÆÚ£º2012-5-16 ÏÂÎç2:46:54
#×÷Õߣºzhouliang
 
include_once 'CommFunc.php';
 
//ËùÓеÄÊý¾ÝÁ÷²Ù×÷¶¼ÊÇÒÔ¸ßλÔÚǰµÄÐÎʽ
//×¢Ò⣡£¡£¡ µ±°üÖеÄÊý¾Ý¹ý¶àʱ£¬ÈÝÒ×Òý·¢ÐÔÄÜÎÊÌ⣬ÒòΪÿ´Î¶ÁÈ¡£¬¶¼»áÓÐ×Ö·û´®µÄ¸´ÖÆ
 
#¶ÁÈ¡Á½¸ö×ÖµÄÄÚÈÝ£¬·µ»ØÊ®Áù½øÖÆÊý
function ReadDWORD( &$buffer, &$nPos )
{
    $ret=unpack( 'V', substr( $buffer, $nPos, 4 ) );
    $nPos+=4;
    return array_shift($ret);
}
 
#¶Áȡһ¸ö×ÖµÄÄÚÈÝ£¬·µ»ØÊ®Áù½øÖÆÊý
function ReadWORD( &$buffer, &$nPos )
{
    $ret=unpack( 'v', substr( $buffer, $nPos, 2 ) );
    $nPos+=2;
    return array_shift($ret);
}
 
function ReadBYTE( &$buffer, &$nPos )
{
    $ret=unpack( 'C', substr( $buffer, $nPos, 1 ) );
    $nPos+=1;
    return array_shift($ret);
}
 
function ReadFloat(&$buffer, &$nPos)
{
    $ret = unpack('f', substr($buffer, $nPos, 4));
    $nPos += 4;
    return array_shift($ret);
}
 
function ReadDouble(&$buffer, &$nPos)
{
    $ret = unpack('d', substr($buffer, $nPos, 8));
    $nPos += 8;
    return array_shift($ret);
}
 
#¶ÁÈ¡×Ö·û´®
function ReadString(&$buffer, $nLen, &$nPos)
{
    $ret=substr( $buffer, $nPos, $nLen );
    $nPos += $nLen;
    return $ret;
}
 
 
function WriteBYTE(&$buffer, $value)
{
    $buffer .= pack('C', $value);
    return $buffer;
}
 
function WriteWORD(&$buffer, $value)
{
    $buffer .= pack('v', $value);
    return $buffer;
}
 
function WriteDWORD(&$buffer, $value)
{
    $buffer .= pack('V', $value);
    return $buffer;
}
 
function WriteFloat(&$buffer, $value)
{
    $buffer .= pack('f', $value);
    return $buffer;
}
 
function WriteDouble(&$buffer, $value)
{
    $buffer .= pack('d', $value);
    return $buffer;
}
 
function WriteString(&$buffer, $len, $value)
{
    $buffer .= substr( $value, 0, $len );
    return $buffer;
}
?>