1
我从我的客户端上的python脚本触发我的web服务器上的php脚本。我处理的二进制数据,我提供给我的客户端脚本解析这样的:如何发送/接收数据Byte Bytete
$file = "gw/gateway.py"
if (file_exists($file)) {
$gw_file_sz = filesize($file);
$filesz1 = $gw_file_sz/256;
$filesz2 = $gw_file_sz%256;
}
$binarydata = pack("C*", 0x01, $year1, $year2, $day1, $day2, $min1, $min2, $sec, 0x00, 0x3f, 0x02, 0x00, 0x1c, 0x2c , 0x4c, 0xdf, 0xcb,
0x02, 0x00, 0x1c, 0x2c , 0x5c, 0xe8, 0x41,
0x04, 0x00, 0x1c, 0x2c , 0x5c, 0xe4, 0x38,
0x02, 0x00, 0x1c, 0x2c , 0x5c, 0xe3, 0x7b,
0x02, 0x00, 0x1c, 0x2c , 0x4c, 0xdf, 0xbf,
0x02, 0x00, 0x1c, 0x2c , 0x5c, 0xe7, 0xd7,
0x02, 0x00, 0x1c, 0x2c , 0x4c, 0xdf, 0x64,
0x02, 0x00, 0x1c, 0x2c , 0x5c, 0xe7, 0x7a,
0x02, 0x00, 0x1c, 0x2c , 0x5c, 0xe8, 0x22,
0x08, $filesz1, $filesz2);
echo $binarydata;
现在,这正常工作与这些数据,但我怎么追加我的文件$文件在此流的末尾是由我的客户拿起? 在Python端,我读出来自FH = StringIO的(数据)中的所有数据哪里获得字节像MyByte = ORD(fh.read(1))
[编辑] 我只是试图在末尾附加数据(回声之前),如:
$fh = fopen($file);
for ($i=0;$i<filesize($file); $i++) {
$binarydata.=pack("C*",fread($fh,1));
}
fclose($fh);
但它似乎没有工作,为什么不... ...?
嗨JMack,感谢您的回应,这样一切都会在同一个流,不会打开一个新的file_get_contents()? – cerr
不,它不应该打开一个新的流。它应该都是一个流。这与'echo $ binarydata.file_get_contents($ file);'相同,它会在回显所有数据之前从所有数据创建一个字符串。 –