协议的要求如下:
字段名 字节数 类型 描述
Total_Length 4 Unsigned Integer 消息总长度(含消息头及消息体)
Command_Id 2 Unsigned Short 命令类型
0x0001表示更新操作
0x0002表示资源下载
0x8000表示错误返回
URL_Length 1 Unsigned Char 备用URL的长度
URL URL_Length String 备用URL地址,注意用UTF-8编码
Version 1 Unsigned Char 版本号 目前是0x01跟据以上的要求,我应该怎么写数据流,然后生成一个二进制流文件?现在没有一点门路,谢谢!
字段名 字节数 类型 描述
Total_Length 4 Unsigned Integer 消息总长度(含消息头及消息体)
Command_Id 2 Unsigned Short 命令类型
0x0001表示更新操作
0x0002表示资源下载
0x8000表示错误返回
URL_Length 1 Unsigned Char 备用URL的长度
URL URL_Length String 备用URL地址,注意用UTF-8编码
Version 1 Unsigned Char 版本号 目前是0x01跟据以上的要求,我应该怎么写数据流,然后生成一个二进制流文件?现在没有一点门路,谢谢!
解决方案 »
- php 二维数组转一维神奇迷惑 求帮忙看下
- DZ是怎样进入具体的页面的?
- mail()函数 如何自定义发件人
- 关于结果返回数组
- php如何绘制直方图、饼图、曲线图等
- 有没有英文的免费的可以实现以下功能的CMS系统
- email群发问题?
- 如果我要租用主机的话,不能自己配置php.ini文件怎么办?各位有没有更好方法?或比我这更好的在线统计思路呢?在线等待中...
- 高分求助,高手请进,再现等待
- 关于imagettftext()在图形中输入中文字符得问题
- 【100分】有劳各位 征集域名 顶着有分 呵呵 来吧
- Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate
$str = 0x8000;echo $str2 = base_convert($str, 16, 2);
echo '<br>';
echo base_convert($str2, 2, 16);
[code]字符串 文件等 可以考虑用 pack 和 unpack 转化成二进制[code=PHP]
$file1 = 'F:/46.gif'; //随便拷一个图片作为测试用
$file2 = 'F:/test.txt'; //生成的二进制流保存在这个文件里
$file3 = 'F:/47.gif'; //由二进制流还原成的文件$size = filesize($file1);echo '文件大小为:'.$size;
echo "\n<br>转化为二进制 ...";$content = file_get_contents($file1);
$content = bstr2bin($content);
$fp = fopen($file2, 'w');
fwrite($fp, $content);
fclose($fp);$size2 = filesize($file2);echo '转化成二进制后文件大小为:'.$size2;$content = bin2bstr($content);$fp = fopen($file3, 'w');
fwrite($fp, $content);
fclose($fp);
function bin2bstr($input)
// Convert a binary expression (e.g., "100111") into a binary-string
{
if (!is_string($input)) return null; // Sanity check // Pack into a string
$input = str_split($input, 4);
$str = '';
foreach ($input as $v)
{
$str .= base_convert($v, 2, 16);
}
$str = pack('H*', $str);
return $str;
}function bstr2bin($input)
// Binary representation of a binary-string
{
if (!is_string($input)) return null; // Sanity check // Unpack as a hexadecimal string
$value = unpack('H*', $input);
// Output binary representation
$value = str_split($value[1], 1);
$bin = '';
foreach ($value as $v)
{
$b = str_pad(base_convert($v, 16, 2), 4, '0', STR_PAD_LEFT);
$bin .= $b;
}
return $bin;
}