如何在php中逐位编写二进制响应?

时间:2014-09-08 00:28:19

标签: php stream bit

我想用PHP动态输出一个mp3文件,以便我可以尝试使用html5音频标签进行voip调用。我打算在html文档中使用一个mp3音频标签,指向我的php文件,它可以动态生成mp3数据。部分mp3标题仅以2位编码。我查看了pack(),但它似乎只支持打包成字节。我可以将标题组合成8位,但我真的宁愿能够一点一点地写入流。有没有办法在php中执行此操作,或者我是否必须编写java / c ++服务器才能获得这种低级控件?

更新

因此经过一些研究后,似乎由于tcp / ip的限制(实际限制)以及php管道的工作方式,使用php实现逐字节转换是不可行的。

1 个答案:

答案 0 :(得分:0)

这样的事情:取“一个”随机字节,并设置想要的位,打包。

$random_byte = mt_rand(0, 255); // it's not real one byte. But pack would truncate to it.
$last_bit = 1; //
$random_byte_with_last_bit = $random_byte | $last_bit;
var_dump(sprintf('%08b', $random_byte_with_last_bit));
$result = pack('C', $random_byte_with_last_bit);
相关问题