格式化字符串,有偿求助 本帖最后由 xiongmzh 于 2010-11-01 16:35:13 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 825831985是可变的,由我的time变化而变化,但是我的time经过sprintf一格式化,传给C++就走了样,我知道一定是这个sprintf引起的,我一直对这个函数不感冒,琢磨了很久还是用得不对兄台给指点指点 怎么pack的,就怎么unpack。你的问题和sprintf有关系么?$format = sprintf("vvvva%dVa8", 10); //格式化字符串$head_data = pack(//封装包 $format, 0xFFAA, 0xFFAA, 6, 10, 11, 1, 1291046400);//你确认对方是按照你的pack格式反解的吗?print_r($t = unpack('v4v/a10a/VV/a8time/',$head_data));echo "<br/>";echo $t['time'].'00'; 鉴于time()是10位数,pack的format关于时间戳的为什么是a8呢?这样不是会截断最后两位数么?为什么不是$format = sprintf("vvvva%dVa10", 10); 谢谢foolbirdflyfirst,“规则”是C++方面订的,我必须按照他的接收方式发包回头我试试改成a10 还是不行,对方接收到的还是和我的time不同,这里是把含有time这个包体通过socket传过去的郁闷啊 php代理服务器程序 php+oracle的问题 换IP了,报错! php 如何设置首页 php技术提问 一人令人迷茫的问题(新手上路) 询问一个DZ验证的问题,有什么最简单的方法吗? 【特奇怪】一个类的问题, 请大家帮忙解决 要把空格存入数据库该怎么办啊??? 抛砖引玉——简单的xml留言簿 mysql数据库如何修改一列数据 sockets 怎么向页面推送数据 在WIN7下phpmyadmin3.3.7本地安装的问题来了
$format = sprintf("vvvva%dVa8", 10); //格式化字符串
$head_data = pack(//封装包
$format,
0xFFAA,
0xFFAA,
6,
10,
11,
1,
1291046400);
//你确认对方是按照你的pack格式反解的吗?
print_r($t = unpack('v4v/a10a/VV/a8time/',$head_data));
echo "<br/>";
echo $t['time'].'00';
为什么不是
$format = sprintf("vvvva%dVa10", 10);
回头我试试改成a10